winforms 如何在选择选项卡后为任何控件给予焦点

thigvfpy  于 2023-10-23  发布在  其他
关注(0)|答案(5)|浏览(138)

我有个问题。我有一个错误列表表单(作为验证摘要屏幕),显示需要保存数据但没有值的控件的验证。当对另一个具有选项卡控件的窗体中的控件进行验证时打开的此窗体包含具有验证的所有控件。
问题是,当我双击错误列表表单,我需要光标集中在选项卡控件,有这个控件和控件本身的重点
结果:焦点仅发生在选项卡控件上..但我也需要专注于控制

eqoofvh9

eqoofvh91#

在选项卡中使用Control.Focus()选择事件处理程序。

gblwokeq

gblwokeq2#

调用Focus()以关注下一个控件。

ttp71kqs

ttp71kqs3#

第一步:TabPage获得焦点时,需要处理TabPage Control的Enter事件来执行操作。
**第二步:**您可以在Required控件上调用Select()函数来获取Focus

试试这个:如果你想在TabPage2中获得TextBoxFocus控制,请使用以下代码

tabPage2.Enter += new System.EventHandler(this.tabPage2_Enter);
  private void tabPage2_Enter(object sender, EventArgs e)
    {
       textBox1.Select();
    }
w41d8nur

w41d8nur4#

我认为诀窍是先在标签页上设置socus,然后在你想关注的实际控件上设置焦点。
我看到的是,如果选项卡页面已经被选中,则将焦点设置为控件工作正常。但是,如果选项卡是以编程方式激活的,则仅将焦点设置在控件上不起作用。
所以这对我来说是可靠的:

// first select and focus the tab
TabsResult.SelectedTab = tabRequest;
TabsResult.SelectedTab.Focus();

// then focus the control
txtRequestUrl.Focus();
yizd12fk

yizd12fk5#

我在选项卡项目中使用了密码框,该选项卡项目使用Loaded事件以编程方式关注以下代码行。

private void pwd7_Loaded(object sender, RoutedEventArgs e)
{
    ((PasswordBox)sender).Focus();
}

这可能对任何遇到类似问题的人都有帮助。

相关问题