gpt4 book ai didi

vb.net - 无法将焦点设置在 Windows 窗体文本框上

转载 作者:行者123 更新时间:2023-12-03 22:51:24 25 4
gpt4 key购买 nike

当标签页第一次出现时,我似乎无法将输入焦点放在文本框上(我使用的是 Windows 窗体、VB.NET 3.5)。

我在标签页的面板上有一个文本框,当标签页出现时,我希望焦点位于文本框上。我希望用户能够立即在焦点文本框中开始输入,而无需单击文本框。我按照我想要的顺序设置了制表位,文本框是第一个制表位。该选项卡除了选项卡页面出现时,重点不会在TextBox上,即首先在选项卡顺序中的焦点。

在标签页的Enter事件处理程序中我调用了文本框的Focus方法,但是它返回False并且什么都不做,没有错误信息。我知道我可以访问文本框,因为
在代码的同一点我可以设置文本框的文本。

如果重要的话,标签页的布局有点复杂:

frmFoo/TabControl1/TabPageX/Panel1/Panel2/TextBox1

我想将焦点设置在 TextBox1 上。
  • 将焦点放在所需文本框上的最佳方法是什么?
  • 如果设置焦点是最好的方法,为什么 textbox.Focus() 方法失败?
  • 最佳答案

    我假设您正在尝试在表单加载事件处理程序中设置焦点?如果是这样,你需要做一个 Me.Show()在设置焦点之前实际创建屏幕控制。类似的东西:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    Me.Show()
    Application.DoEvents()
    TextBox1.Focus()
    End Sub

    如果你不做 Me.Show() ,在加载事件完成之前不会显示表单。

    对于选项卡控件,处理 _SelectedIndexChanged事件:
    Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As System.EventArgs) _
    Handles TabControl1.SelectedIndexChanged

    If TabControl1.SelectedTab.Name = "TabPage1" Then
    TextBox2.Focus()
    End If
    If TabControl1.SelectedTab.Name = "TabPage2" Then
    TextBox4.Focus()
    End If

    如果选择的第一个字段是选项卡控件上的文本框,您仍然希望在加载事件中设置初始焦点,如上所示。

    关于vb.net - 无法将焦点设置在 Windows 窗体文本框上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6287605/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com