如何重写C#控件基类的事件

如何重写C#控件基类的事件,第1张

使用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)

        }    }

点击效果:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7974201.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存