【问题标题】:Add a global leave event添加全局休假事件
【发布时间】:2023-03-18 06:23:01
【问题描述】:

我有一个包含许多控件的表单。一些控件有 Leave 事件,我想为 all 控件添加一个全局处理程序。

我想做什么:

  • 如果控件有离开事件:首先触发该事件,然后执行全局处理程序
  • 如果控件没有离开事件,则只执行全局处理程序。

我该怎么做?

【问题讨论】:

  • 我觉得这样比较清楚

标签: c# events controls


【解决方案1】:

您可以添加一个通用处理程序并将其连接到表单上每个控件的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. 除非这些控件在面板中。
  • 我不确定我是否能看到 OP 提到的哪里有 Panel(或其他容器控件)。但是,这可以通过递归地将 Leave 事件添加到嵌套控件来轻松解决,这没什么大不了
  • 是的,所有的控件都在一个Tabpage中,自然而然
猜你喜欢
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 2023-02-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多