将自定义控件绑定到外部按钮

binding custom control to an external button

我有一个在外部应用程序中使用的自定义控件。我想在 application 中绑定一个随机按钮的点击事件来将数据添加到我的 control.

这样的事有可能吗??基本上我在想的是在我的控件中创建一个 属性 ,允许开发人员在设计时向它添加一个按钮控件。然后当应用程序 运行 时,在按钮上注册的任何点击都将转发到自定义控件中的方法以添加数据。

这可行吗?如果是这样,有人可以解释具体需要做什么吗?

您可以在自定义控件中创建 Button 类型的 属性。然后,当您在设计器上放置一个自定义控件实例时,对于那个 属性,您将看到一个下拉列表,其中显示了表单上的所有 Button 个实例,您可以 select 其中一个。在 属性:

的 setter 中添加一个方法来单击按钮事件就足够了
using System;
using System.Windows.Forms;
public class MyControl : UserControl
{
    private Button addButton;
    public Button AddButton
    {
        get { return addButton; }
        set
        {
            if (addButton != null)
                addButton.Click -= new EventHandler(addButton_Click);

            addButton = value;

            if (addButton != null)
                addButton.Click += new EventHandler(addButton_Click);
        }
    }

    void addButton_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Add Button Clicked!");
    }
}

当您将它放在设计器上时,对于 AddButton 属性,将显示表单上可用按钮的列表。选择其中之一就足够了,然后您想要的行为(在示例中,显示消息框)将附加到该按钮的单击事件。