显示Button Control的OnClick事件的自定义控件

本文关键字:事件 自定义控件 OnClick 显示 Control Button | 更新日期: 2023-09-27 18:10:04

我需要设计一个自定义控件,它基本上是一个花哨的按钮,我们称之为CtrlButton

我想把这些放在我的空白表单上,然后转到我的控件的Events并指定如何处理单击事件。

如果我的自定义控件CtrlButton包含一个名为button1的Windows窗体按钮,我可以简单地暴露button1的底层单击事件处理程序吗?

public EventHandler Click {
  get { return button1.Click; }
  set { button1.Click = value; }
}

这段代码不能工作!但是,这就是我想要做的。

编辑:我看到我因为这个帖子获得了流行问题奖,但它仍然坐在那里-1。如果这个问题能帮助你找到答案,请投票。

显示Button Control的OnClick事件的自定义控件

按钮。Click是一个事件,而不是属性。你不能获取和设置它的值,因为它不是属性;你只能添加和删除处理程序,因为它是一个事件,这就是事件的工作方式。

但是你可以用自定义的addremove处理程序编写自己的事件来包装按钮:

public event EventHandler Click {
    add { button1.Click += value; }
    remove { button1.Click -= value; }
}

如果这是从标准的Button控件派生的,如下所示:

using System.Drawing;
using System.Windows.Forms;
namespace WindowsFormsControlLibrary1
{
   public class RedButton : Button
   {
       public RedButton()
       {
           base.BackColor = Color.Red;
       }
   }
}

事件可用。如果你已经完全定制了你自己的按钮,你将不得不连接所有的事件,就像这篇文章。