我有一个我在外部应用程序中使用的自定义控件。我想在应用中绑定随机按钮的点击事件,以便将数据添加到控件。
这样的事情是否可能?基本上我的想法是在我的控件中创建一个属性,允许开发人员在设计时添加一个按钮控件。然后,当应用程序运行时,按钮上注册的任何点击都将转发到自定义控件中的方法以添加数据。
这可行吗?如果是这样,有人可以解释究竟需要做什么吗?
答案 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
属性,将显示表单上的可用按钮列表。它足以选择其中一个,然后您想要的行为(在示例中,显示消息框)将附加到该按钮的单击事件。