我要做的东西上面有十几个窗口,每个窗口的外形是一样的。但每添加一个窗口我就要添加同样的OnPaint重绘事件代码。。有没有什么办法能够将其它封装到一个类里,每个窗体载入时,调用一个的方法呀!~

解决方案 »

  1.   

    void ShowForm(Form frm)
    {
      frm.Paint += new PaintEventHandler(相同的paint处理函数);
      frm.Show();
    }frmABC f = new frmABC();
    ShowForm(f);
      

  2.   

    @ weisunding(鼎鼎)
    如果是启动窗体呢????
      

  3.   

    另外,我用的是protected override void OnPaint( System.Windows.Forms.PaintEventArgs e )方法。在重绘窗体的过程中需要获取窗体的Width和Height等值。。这些值如何获取呀!~
      

  4.   

    不好意思,问题多了点。我还想问一下OnPaint同Paint之间的区别是什么?
      

  5.   

    如果全部要进行override,那你写一个基类,其它窗体都从它继承(你早该这样),这样,子窗体都不要去动它了public class BaseForm : Form
    {
       ...
       
       protected override void OnPaint( System.Windows.Forms.PaintEventArgs e )
      {
        //...这里放上你要进行的代码
      }
       }
      

  6.   

    @ weisunding(鼎鼎) 
    谢谢看了几个贴子,都在报怨自已的贴子沉了以后没有人理。我接触C#的时间不太长,能不能给一个简单的例子!~谢谢!~
      

  7.   

    weisunding(鼎鼎)他不错,解决了困扰本人三个月的问题,是高手我再  顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶 顶