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

时间:2016-06-23 13:40:47

标签: c# winforms custom-controls windows-forms-designer design-time

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以在自定义控件中创建Button类型的属性。然后,当您在设计器上放置自定义控件的实例时,对于该属性,您将看到一个下拉列表,其中显示了表单上的所有Button实例,您可以选择其中一个实例。在属性的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属性,将显示表单上的可用按钮列表。它足以选择其中一个,然后您想要的行为(在示例中,显示消息框)将附加到该按钮的单击事件。

enter image description here