当表单加载时如何把焦点放在TextBox上?

我有我的C#程序文本框

当程序启动的时候,我需要把焦点放在文本框上

我在Form_Load上试试这个:

MyTextBox.Focus(); 

但它不会工作

设置窗体的ActiveControl属性,你应该没问题。

 this.ActiveControl = yourtextboxname; 

检查您的标签顺序,并确保文本框设置为零

你可以尝试:

MyTextBox.Select();

根据文件:

如果在ControlStyles中控件的Selectable样式位设置为true,则Select方法将激活控件,并将其包含在另一个控件中,并且所有父控件均可见并启用。

您可以通过检查MyTextBox.CanSelect属性来首先检查控件是否可以select。

如果您只想在第一次显示表单时设置焦点,请尝试处理Form.Shown事件并在此处执行此操作。 否则使用Control.VisibleChanged 。

如果没有呈现焦点,则无法将焦点设置为控件。 Form.Load()在呈现控件之前发生。

转到表单的事件,然后双击“显示”事件。 在窗体显示的事件处理程序中调用control.Focus()方法。

  private void myForm_Shown(object sender, EventArgs e) { // Call textbox's focus method txtMyTextbox.Focus(); } 

Textbox.Focus() “尝试”设置文本框元素的焦点。 例如,在隐藏元素可见性的情况下, Focus()将不起作用。 所以在调用Focus()之前,确保你的元素是可见的。

使用表格显示事件和设置

 MyTextBox.Focus(); 

你不能得到它的原因是因为Load事件在表单被绘制或呈现之前被调用。

它就像告诉一个比萨饼店如何制作比萨饼,然后要求他们发一张比萨饼之前吃多less意大利辣香肠的照片。

 using System; using System.Windows.Forms; namespace Testing { public partial class TestForm : Form { public TestForm() { InitializeComponent(); Load += TestForm_Load; VisibleChanged += TestForm_VisibleChanged; Shown += TestForm_Shown; Show(); } private void TestForm_Load(object sender, EventArgs e) { MessageBox.Show("This event is called before the form is rendered."); } private void TestForm_VisibleChanged(object sender, EventArgs e) { MessageBox.Show("This event is called before the form is rendered."); } private void TestForm_Shown(object sender, EventArgs e) { MessageBox.Show("This event is called after the form is rendered."); txtFirstName.Focus(); } } } 

我通过更改TextBox的“TabIndex”属性解决了我的问题。 我为TextBox设置了0,当程序启动时,我想将它集中在Form上。

它的工作为我设置tabindex为0 this.yourtextbox.TabIndex = 0;

在jQuery中设置焦点

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

或在Javascript中,你可以做

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