使用c#winforms vs2008
我在表单上使用TabControl。每个选项卡都有一组不同的输入字段。其中一些领域必须完成。如用户名。多个用户将使用同一台PC,因此用户名必须保持静态。我在 require 字段上有一个离开事件,当文本框失去焦点以检查是否添加了值时,会触发该事件。在Username的情况下,弹出窗口将显示可能的值。这非常棒,可以确保准确性和速度。当用户点击另一个标签时出现问题,文本框离开事件触发。如果焦点更改为不在当前选项卡上的控件,如何防止leave_event代码运行?
我尝试过不同的事件处理程序,但是事件似乎首先发生。我试过验证事件处理程序的文本框,但也没有成功。我尝试在代码前面添加一个If语句来检查选项卡号,或者tabcontrol状态 - 没有快乐 - 就像之前的任何其他更改一样,leave事件会触发。
我能想到的唯一剩下的事情是循环选项卡上的所有控件以检查它们是否具有焦点,但这只是感觉很乱。
还有其他建议吗?
答案 0 :(得分:-1)
我找到了部分解决方案。在选项卡上使用Mouse_Enter和_Leave事件,我设置一个标志以确定鼠标是在表单中还是在外部单击。如果该标志设置为false,则不会运行leave事件。但这并不能解决捷径按键问题。但是我可以稍后处理。