none
windows forms 窗体执行了load事件后没有执行paint事件求解? RRS feed

  • 问题

  • 窗体load之后没有执行paint事件导致界面无法显示完整,但按理说load之后应该执行paint事件不知为什么没有执行。采用Refresh之后界面会触发两次paint事件(界面得到了正常显示)。不知原因求指导???
    2013年2月17日 7:23

答案

  • Hi  旅雁_孤云,

      欢迎来到MSDN中文论坛。

      load之后没有执行paint事件导致界面无法显示完整是因为没有发生重绘操作。Refresh: 强制控件使其工作区无效并立即重绘自己和任何子控件。==Invalidate + Update,就是说你的Refresh 发生了Invalidate 和Update两次操作,Update使控件重绘其工作区内的无效区域,立即调用Paint事件。若有无效区域,Update将立即触发重绘。而Invalidate使控件的特定区域(可以自己设置区域,从而提高性能)无效并向控件发送绘制消息。将控件标记为需要重绘,但是不会立即执行刷新重绘,等到系统空闲时进行重绘。所以你的Refresh会发生两次paint操作。

     


    Jason Wang [MSFT]
    MSDN Community Support | Feedback to us

    2013年2月18日 5:01
    版主