我在一个表单上有一堆控件(文本框和组合框),带有 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/