c# - 手动引发控件上的 LostFocus 事件

标签 c# .net

我在一个表单上有一堆控件(文本框和组合框),带有 toolstripcontainer 和 toolstripbuttons 用于保存、取消等以进行编辑。我们正在使用 .Net 3.5 SP1
在 control.lostfocus 和 control.leave 事件中写了一堆逻辑。单击工具条按钮时不会调用这些事件。有没有办法在按下这些按钮中的任何一个时手动调用这些事件。

谢谢。
基肖尔

[编辑]

这就是我解决问题的方法。谢谢 Chris Marasti-Georg 为指针。在按钮单击事件中,我将焦点放在工具条上而不是按钮上,因为工具条按钮没有焦点事件。我们可以访问放置按钮的工具条,使用

((ToolStripButton)sender).Owner.Focus()

-基肖尔

最佳答案

您可以监听按钮上的点击事件,并在处理程序中调用它们的焦点方法。这将(希望)导致先前聚焦的控件正确响应。将以下处理程序添加到每个按钮的点击事件:

private void ButtonClick(object sender, EventArgs e) {
    if(sender != null) {
        sender.Focus();
    }
}

关于c# - 手动引发控件上的 LostFocus 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/287685/

相关文章:

c# - HTML.textBoxFor(x=>x.Price, disabled = true) 不会将值发布到 Controller 发布操作!

c# - 非 Windows 操作系统上的 .NET 框架 System.Windows.Form

c# - 计算代码库中的匿名类?

.net - 在 Visual Studio 中将非引用 dll 添加到 .NET 项目时的正确生成操作

c# - 如何将两个数据表连接到另一个数据表

c# - RazorEngine 和 EF 5 或 6

c# - 在 C# 中,我如何知道赋值运算符 (=) 何时会复制值或内存地址(引用)?

c# - 从 const char* 复制到字节数组 C++/c# interop Marshal::Copy

c# - DataSource 改变前的 DataGridView 事件

.net - 如何使 System.Uri 不转义路径中的 %2f(斜杠)?