窗口时默认最大化启动的,我在程序的override void OnPaint()事件中加了一个控制台打印语句,然后发现在窗口启动的时候Paint事件好像执行了6次,因为打印语句打印了6次,在窗口化时执行了5次,并且都会提示:A first chance exception of type 'System.ComponentModel.Win32Exception' occurred in System.Drawing.dll 异常。请问一下,paint事件是不是在每次绘制的时候不是只执行一次啊?

解决方案 »

  1.   

    不要认为首次显示窗体的时候OnPaint只执行一次。
      

  2.   


    这个是为什么啊,能说的详细点吗?
    还有,如果OnPaint执行了不止一次,那么OnPaint里是不是就不能执行会对程序以后的处理有影响的操作,比方说修改一个全局变量?
      

  3.   

    不要去了解他应该执行多少次,凡是可能改变外观的消息,都会触发Paint事件,所以别在意他执行了多少次。
      

  4.   

    Paint事件只能用来添加自定义的界面绘制功能,其它功能代码不要在里面写,任何界面上的小刷新都会触发它。
      

  5.   

    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.paint.aspx
      

  6.   

    经过试验我OnPaint会被执行很多次,我也试验过了SizeChanged和Resize事件,也是会在窗口尺寸发生变化时执行不止一次,我想问的是这样的原因或者说是内部过程是怎样的