当一个窗体加载时,如何将焦点放在文本框上?

186

我在我的C#程序中有一个TextBox。当程序启动时,我需要焦点放在这个TextBox上。

我尝试在Form_Load事件中使用以下代码:

MyTextBox.Focus();

但它并不起作用。

当表单加载时,我该如何将焦点放在这里?

16个回答

4

最终我找到了问题所在,我在使用Metro框架,你提供的所有解决方案都不适用于Metro文本框,但是这些解决方案对于普通文本框有效,在加载、显示、可见性更改和事件等方面,即使选项卡索引= 0也是有效的。

   // private void Form1_VisibleChanged(object sender, EventArgs e)
   // private void Form1__Shown(object sender, EventArgs e)
    private void Form1_Load(object sender, EventArgs e)
    {

        textBox1.Select();
        this.ActiveControl=textBox1;
        textBox1.Focus();
    }

2

您可以使用textBox1.select();或文本框设置中的TabIndex。当TabIndex=0时,将首先聚焦。


如果我们在窗体加载事件处理程序中调用textBox1.select();,它会将焦点设置在textBox1中。 - Tushar R.
我在对话框上的第一个文本框中设置了 TabIndex = 0,但它没有起作用。后来我发现这是因为前三个文本框被放置在了一个 groupBox 中。所以,在 groupBox 中的那些文本框的 TabIndex 值并没有被对话框考虑,而对话框中可见的第一个控件是位于 groupBox 外部且具有最低 TabIndex 值的启用控件。所以要注意这一点... - Todd Hoatson

1
将 Tabstop 设置为 True,将 TabIndex 设置为需要聚焦的控件的最小值。
例如,如果您有两个文本框:TextBox1 和 TextBox2,请为两个文本框设置 Tabstop 为 True,TabIndex 分别设置为 0 和 1。当窗体加载时,焦点将位于 TextBox1 上,按下“Tab”键后,焦点将移动到 TextBox2 上。

0
在您的表单上,转到属性并确保“TopMost”属性设置为true,这将解决您的问题。

0

这对我有用 将tabindex设置为0 this.yourtextbox.TabIndex = 0;


-5

在 jQuery 中设置焦点

$(function() {
  $("#txtBox1").focus();
});

或者在Javascript中你可以这样做

window.onload = function() {
  document.getElementById("txtBox1").focus();
};

6
可能这是一个网站问题的好答案,但是这个问题被标记为 c#winforms,所以需要针对这些内容进行回答。 - Ben Voigt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接