.Net WinForms TabControl Steals 专注于表单激活

Posted

技术标签:

【中文标题】.Net WinForms TabControl Steals 专注于表单激活【英文标题】:.Net WinForms TabControl Steals Focus on form activation 【发布时间】:2011-03-29 12:41:44 【问题描述】:

不知道有没有人可以帮助我?

我遇到的问题是 Windows 表单 TabPage 在重新激活表单时窃取了焦点。该窗体有一个带有四个或五个 TabPages 的 TabControl。每个标签页都有许多不同的控件。

场景如下: 用户通过第一个 TabPage 上的一些控件进行选项卡,并生成并显示一个新表单(例如从 TextBox 的一个离开事件),当它自己获得焦点时,它会从第一个表单中移除焦点。用户在新表单上选择一个值并关闭它。 - 然后我希望原始表单知道用户在哪里切换并设置焦点到该控件。

但是,当表单重新激活时,它似乎设置了焦点,而不是回到用户到达的位置,甚至是活动 TabPage 的选项卡顺序中的第一个控件。相反,它将焦点放在活动的 TabPage 本身。

这附近有什么地方吗?

感谢和亲切的问候, 杜安。

【问题讨论】:

【参考方案1】:

我创建了变量(在选项卡控件类中,以将它们保持在范围内)来存储当前页面和访问的最后一页,还创建了一个变量来存储具有焦点的控件,使用指针、引用等.

当您返回时,使用该变量将焦点恢复到该控件。

HTH

【讨论】:

谢谢,我会在周一回来工作时看看如何实施该技术。 :o)

以上是关于.Net WinForms TabControl Steals 专注于表单激活的主要内容,如果未能解决你的问题,请参考以下文章

如何在设计器的 WinForms TabControl 中切换选项卡?

如何从 TabControl 隐藏 TabPage [重复]

自定义 TabControl 以关闭单个选项卡

将控件从文件夹添加到 tabControl

Winforms 标签页上的关闭按钮

如何在powershell中使用winforms右键单击选项卡时捕获事件