设置用户控件';s默认事件
本文关键字:默认 事件 用户 控件 设置 | 更新日期: 2023-09-27 18:00:17
我有一个包含一堆控件的User Control
。我想将此User Control
的默认事件设置为我的一个按钮的Click
事件。
我知道要将默认事件设置为UserControl的一个事件,我应该添加属性:
[DefaultEvent("Click")]
public partial class ucPersonSearch : UserControl
...
我想知道是否有可能做这样的事情:
[DefaultEvent("btn1_Click")]
public partial class ucPersonSearch : UserControl
...
我想在btn1被clikced时,在托管此用户控件的表单中激发一些方法。
这真的是我项目中的一个编织物,你们的答案将是有价值的。
您不能将类成员的事件公开到类的外部。其他人如何在您的UserControl
中订阅Button
的Click
事件?你试过了吗?除非你让按钮可以从外面访问,否则这是不可能的,这是不好的(每个人都可以更改所有属性)。
你必须定义一个新事件,并在你想要的事件(点击按钮)发生时激发你的新事件:
[DefaultEvent("MyClick")]
public partial class UCPersonSearch : UserControl
{
Button btnSearch;
public event EventHandler MyClick;
public UCPersonSearch()
{
btnSearch = new Button();
//...
btnSearch.Click += new EventHandler(btnSearch_Click);
}
void btnSearch_Click(object sender, EventArgs e)
{
OnMyClick();
}
protected virtual void OnMyClick()
{
var h = MyClick;
if (h != null)
h(this, EventArgs.Empty);
}
}