如何重写一个控件的onpaint事件
1个回答
推荐于2018-04-10
展开全部
使用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事件了。
调用窗体的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事件了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询