选项卡更改时如何在TabControl中设置焦点控制?

时间:2017-01-10 11:30:28

标签: vb.net tabcontrol

我有一个TabControl,有三个标签。

第一个标签有几个控件。 第二个选项卡只有一个控件。 最后一个标签有几个控件。

当标签页发生变化时,如何将焦点设置到标签中的控件?

以下代码对我不起作用:

Private Sub TabControl1_Selected(sender As Object, e As TabControlEventArgs) Handles TabControl1.Selected
    If TabControl1.SelectedIndex = 1 Then
        TextBox2.Text = "Here"
        TextBox2.Focus()
    End If
End Sub

2 个答案:

答案 0 :(得分:0)

Sergio,您可以在 propiety 中设置控制选项卡索引:

Tab Index

答案 1 :(得分:0)

我认为这可能就是你所追求的:

Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged
    If TabControl1.SelectedTab Is TabPage1 Then
        TextBox1.Text = "On tab 1"
        TextBox1.Focus()
    ElseIf TabControl1.SelectedTab Is TabPage2 Then
        TextBox2.Text = "On tab 2"
        TextBox2.Focus()
    End If
End Sub

请注意SelectedIndexChanged的使用。我还稍微更改了If以检查选择了哪个标签。

我已使用多个标签和控件对此进行了测试。效果很好。

如果要设置控件的焦点,请将光标位置设置在控件中文本的末尾,您可以使用:

TextBox1.Select(TextBox1.Text.Length, 0)