1. 程式人生 > >c# 如何重寫控制元件的OnPaint事件

c# 如何重寫控制元件的OnPaint事件

使用OnPaint事件可以隨時繪製圖形

呼叫窗體的OnPaint事件

protected override void OnPaint(PaintEventArgs e)

{

    base.OnPaint(e);
    //繪圖

}

但是如何重寫控制元件的OnPaint事件呢?比如說繪圖是在PictureBox中繪製的,那麼如何重寫PictureBox的OnPaint事件?

我們無法直接在窗體的程式碼中重寫控制元件的OnPaint事件,只能重寫窗體的OnPaint事件。

重寫控制元件的OnPaint事件,必須建立一個新的控制元件。這個控制元件繼承Windows的控制元件,然後在建立的控制元件中重寫控制元件的OnPaint事件。

以PictureBox為例:

//定義一個新的控制元件,繼承PictureBox控制元件

 public class myPictureBox : PictureBox
    {

        //自定義控制元件的建構函式
        public myPictureBox()

        {

         }

        //重寫控制元件的OnPaint屬性

        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);

            //繪圖
          }

    }

使用這種方法,就可以重寫任何一個控制元件的OnPaint事件了。