【发布时间】:2017-12-28 16:22:22
【问题描述】:
我正在尝试为我的用户控件实现一个事件处理程序,该处理程序在用户控件内的任何控件或用户控件本身被单击时触发一次单击。
public event EventHandler ClickCard
{
add
{
base.Click += value;
foreach (Control control in GetAll(this, typeof(Control)))
{
control.Click += value;
}
}
remove
{
base.Click -= value;
foreach (Control control in GetAll(this, typeof(Control)))
{
control.Click -= value;
}
}
}
public IEnumerable<Control> GetAll(Control control, Type type)
{
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrl => GetAll(ctrl, type))
.Concat(controls)
.Where(c => c.GetType() == type);
}
我修改了给定here 的代码以绑定所有嵌套控件。这就是我绑定使用此用户控件的事件的方式:
private void feedbackCard1_ClickCard_1(object sender, EventArgs e)
{
MessageBox.Show("Thank You!");
}
但是在点击用户控件或用户控件本身内的任何控件时,点击不会触发。
【问题讨论】:
-
关闭投票没有解释。为什么?请解释一下。
标签: c# .net winforms user-controls controls