【发布时间】:2023-03-18 06:23:01
【问题描述】:
我有一个包含许多控件的表单。一些控件有 Leave 事件,我想为 all 控件添加一个全局处理程序。
我想做什么:
- 如果控件有离开事件:首先触发该事件,然后执行全局处理程序
- 如果控件没有离开事件,则只执行全局处理程序。
我该怎么做?
【问题讨论】:
-
我觉得这样比较清楚
我有一个包含许多控件的表单。一些控件有 Leave 事件,我想为 all 控件添加一个全局处理程序。
我想做什么:
我该怎么做?
【问题讨论】:
您可以添加一个通用处理程序并将其连接到表单上每个控件的Leave 事件:
private Constructor()
{
foreach (Control Item in this.Controls)
Item.Leave += Item_Leave;
}
private void Item_Leave(object sender, EventArgs e)
{
Console.WriteLine("do something");
}
这将为表单上的每个控件触发。
每个控件上的Leave 事件也会被执行。
【讨论】:
This would fire for every single control on the form. 除非这些控件在面板中。
Panel(或其他容器控件)。但是,这可以通过递归地将 Leave 事件添加到嵌套控件来轻松解决,这没什么大不了