WinForms中以前的聚焦控件

WinForms中以前的聚焦控件,winforms,focus,Winforms,Focus,我有一个有很多控件的win表单: 我想知道用户何时在输入“txt1”之后输入“txt2”。换句话说,当用户处于“txt2”时,我想知道前一个控件是否为“txt1” 实现这一点的最佳方法是什么?您可以保留一个模块级变量,该变量的类型为Control,用于存储最后一个要接收焦点的控件。由于需要跟踪接收焦点的每个控件,因此每个控件都需要为Enter事件订阅一个公共事件处理程序。在这种情况下,您将为模块级变量分配已输入的控件,但在此之前,您可以测试“txt1”和“txt2”之间的跳转。是否可以指定您使

我有一个有很多控件的win表单:

我想知道用户何时在输入“txt1”之后输入“txt2”。换句话说,当用户处于“txt2”时,我想知道前一个控件是否为“txt1”


实现这一点的最佳方法是什么?

您可以保留一个模块级变量,该变量的类型为Control,用于存储最后一个要接收焦点的控件。由于需要跟踪接收焦点的每个控件,因此每个控件都需要为Enter事件订阅一个公共事件处理程序。在这种情况下,您将为模块级变量分配已输入的控件,但在此之前,您可以测试“txt1”和“txt2”之间的跳转。

是否可以指定您使用的语言?我的回答假设您在.Net中工作。这是否意味着我必须将Enter事件处理程序添加到表单中的每个控件?对于多个控件,您可以有一个公共Enter事件处理程序。是否希望相同的所有控件都具有与“txt1”和“txt2”之间类似的感知?在这种情况下,只有“txt2”必须具有Enter事件的事件处理程序。但是如果我在“txt1”之后和在“txt2”之后选择其他控件:txt1->other->txt2,此局部变量将告诉我最后一个控件是txt1,这是错误的。是的,你说得对。我将编辑我的答案以考虑这一点。