Answers:
设置ActiveControl
表单的属性,就可以了。
this.ActiveControl = yourtextboxname;
MyTextBox.Focus();
不起作用-程序运行后似乎很好用。
this.ActiveControl = textBox1;
每个人都了解“ textBox1”的含义。“ youttextboxname”听起来像... = "MyTextBox";
您可以尝试:
根据文档:
如果控件的Selectable样式位在ControlStyles中设置为true,它包含在另一个控件中,并且其所有父控件都可见并且已启用,则Select方法将激活该控件。
您可以先通过检查MyTextBox.CanSelect属性来检查控件是否可以选择。
如果只想在第一次显示表单时设置焦点,请尝试处理Form.Shown事件并在那里进行。否则,使用Control.VisibleChanged。
之所以无法使其正常工作,是因为在Load
绘制或呈现表单之前调用了该事件。
这就像告诉披萨店如何制作披萨,然后要求他们向您发送一张照片,说明披萨制作之前披萨上有多少意大利辣香肠。
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上。
设置Tab Index属性的值= 0,然后在表单加载函数中写入:
YourTextboxName.Focus();
会的。
将Tabstop设置为True,将TabIndex设置为所需焦点所在控件的最小值。
例如,如果您有2个TextBoxes:TextBox1和TextBox2,请将Tabstop都设置为True,而TabIndex分别设置为0和1。加载表单时,焦点将位于TextBox1上,并按“ Tab”键,焦点将移至TextBox2。
最后,我发现我正在使用Metro框架的问题,并且所有解决方案都不能与metroTextBox一起使用,并且所有解决方案都可以与load,show,visible_change,events中的常规textBox一起使用,即使选项卡索引= 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();
}
在jQuery中设置焦点
$(function() {
$("#txtBox1").focus();
});
或用Javascript可以
window.onload = function() {
document.getElementById("txtBox1").focus();
};
c#
和的winforms
。
ComboBox
。但这也不起作用!