c# 如何重寫控制元件的OnPaint事件
阿新 • • 發佈:2019-01-23
使用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事件了。