
使用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事件了。
楼主你的想法是可以的。
要手动修改form1.designer.cs:
this.linkLabel1 = new MyLinkButton()
private MyLinkButton linkLabel1
你的LinkLabel控件:
public class MyLinkButton : System.Windows.Forms.LinkLabel
{
protected override void OnLinkClicked(LinkLabelLinkClickedEventArgs e)
{
MessageBox.Show("MyLinkButton里面的Click方法")
//把下面这句注释,那么Form1里面的OnLinkClicked方法就不再执行了
//base.OnLinkClicked(e)
} }
点击效果:
评论列表(0条)