【发布时间】:2011-04-03 08:57:46
【问题描述】:
我有一个带有 3 个组合框的 WinForm,一个带有组合框,两个带有单选按钮。我将它们及其子控件都设置为“TabStop = false”,但是当我使用 TAB 循环时,最后两个组框中的当前选中的单选按钮都会获得焦点。
如果没有办法改变这种行为,那么什么是捕捉并将焦点移开的好事件?我找不到“OnFocus”事件。
解决方案是设置一种方法(下面的代码)来处理表单中每个单选按钮的“Enter”事件(如果您愿意的话)。
实际上,我只为第一个组框的单选按钮做了它并且它有效,第二个组框的单选按钮没有获得焦点,即使它们的“Enter”事件没有被处理。这不是您所期望的行为。
private void radiobuttonXGroup1_Enter(object sender, EventArgs e)
{
SomeOtherControl.Focus();
}
在 *.Designer.cs 文件中,您编辑每个 Enter 事件(对于每个单选按钮)以指向一个事件处理程序(上述方法)。
this.radiobutton1Group1.Enter += new System.EventHandler(this.radiobuttonXGroup1_Enter);
this.radiobutton2Group1.Enter += new System.EventHandler(this.radiobuttonXGroup1_Enter);
this.radiobutton3Group1.Enter += new System.EventHandler(this.radiobuttonXGroup1_Enter);
【问题讨论】:
-
@Robaticus,问题以“我有一个 WinForm...]”开头
-
我编辑了这个问题以回应 Robaticus 的问题。问题是我的浏览器不再使用 StackOverflow 站点。我只能编辑已经发布的问题,但不能发布新问题或添加 cmets(现在使用 Firefox)。
-
您可能被限制了。当您从不接受答案时会发生这种情况:)
-
@Muhammid:实际上,当我发表评论时,文本“a winform with”并不存在。随后对其进行了编辑以包含该文本。查看版本历史记录。
-
@Hans:在我对 Muhammad 的评论中,我提到我使用 Firefox 能够添加评论,那么您如何从浏览器问题转变为“节流”问题?让我们不要偏离轨道。
标签: c# winforms radio-button groupbox tabstop