我有一个由三个文本框组成的用户控件。在一个表单上,我可以有一个或多个或我的 UserControl。我想实现我自己的选项卡行为,所以如果用户在第二个 TextBox 中按下 Tab,我应该只在第二个 TextBox 输入任何内容时移动到第三个 TextBox。如果在第二个 TextBox 中没有输入任何内容,则表单的下一个控件应该按照正常的选项卡行为获得焦点。如果用户没有在第一个或第二个 TextBox 和 presses 选项卡中输入任何内容,那么在这种特殊情况下,应该跳过表单上的控件。
通过使用 ProcessDialogKey,我设法让它工作得很好,但我仍然有一个问题。我的问题是是否有办法检测 WinForms 控件如何获得焦点,因为我还想知道我的 UserControl 是否从 Tab 或 Shift-Tab 获得焦点,然后做我奇怪的事情,但如果用户单击控件我不想做任何特别的事情。