我的C#程序文本框
我需要在程序启动时,焦点将放在textBox
上我在Form_Load上尝试这个:
MyTextBox.Focus();
但它无法正常工作
答案 0 :(得分:310)
设置表单的ActiveControl
属性,你应该没问题。
this.ActiveControl = yourtextboxname;
答案 1 :(得分:23)
检查您的标签顺序,并确保文本框设置为零
答案 2 :(得分:13)
你可以尝试:
根据文件:
如果控件的Selectable,则Select方法激活控件 在ControlStyles中,style bit设置为true,它包含在另一个中 控件及其所有父控件都可见并启用。
您可以通过检查MyTextBox.CanSelect属性来检查是否可以选择控件。
答案 3 :(得分:12)
如果您只想在第一次显示表单时设置焦点,请尝试处理Form.Shown事件并在那里执行。否则请使用Control.VisibleChanged。
答案 4 :(得分:10)
如果尚未渲染,则无法将焦点设置到控件。 Form.Load()在呈现控件之前发生。
转到表单的活动,然后双击"显示"事件。在窗体中显示的事件处理程序调用control.Focus()方法。
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
答案 5 :(得分:5)
Textbox.Focus()
“尝试”将焦点设置在文本框元素上。例如,如果元素可见性被隐藏,Focus()
将无效。因此,在调用Focus()
之前,请确保您的元素可见。
答案 6 :(得分:4)
您无法使其工作的原因是因为在绘制或呈现表单之前调用了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();
}
}
}
答案 7 :(得分:3)
使用表单显示事件并设置
MyTextBox.Focus();
答案 8 :(得分:3)
我通过更改TextBox的“TabIndex”属性解决了我的问题。我为TextBox设置了0,我想在程序启动时将它集中在Form上。
答案 9 :(得分:2)
设置Tab索引属性的值= 0,然后在窗体加载函数中写入:
YourTextboxName.Focus();
它将起作用。
答案 10 :(得分:0)
最后,我发现我正在使用Metro框架的问题,您所有的解决方案都不能与metroTextBox一起使用,并且您所有的解决方案都可以与普通textBox一起使用 在load,show,visible_change,events中,即使选项卡索引= 0也有效。
var Adapter_ = ArrayAdapter.CreateFromResource(this, Resource.Array.calibre_array, Android.Resource.Layout.SimpleSpinnerItem);
答案 11 :(得分:0)
在表单上,转到属性,并确保将“ TopMost”属性设置为true, 可以解决您的问题。
答案 12 :(得分:0)
转到表单的事件,然后双击“显示”事件。在窗体显示的事件处理程序中,调用control.Focus()方法。
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
我喜欢...谢谢!
答案 13 :(得分:0)
将Tabstop设置为True,并将TabIndex设置为您需要关注的控件的最小值。
e.g。如果您有2个TextBox:TextBox1和TextBox2,则将Tabstop设置为True,将TabIndex设置为0和1。当表单加载时,焦点将放在TextBox1上并按下' Tab'键,焦点将移动到TextBox2。
答案 14 :(得分:0)
您可以在文本框设置中使用textBox1.select();
或 TabIndex 。 TabIndex=0
首先展开。
答案 15 :(得分:0)
答案 16 :(得分:-5)
在jquery中设置焦点
$(function() {
$("#txtBox1").focus();
});
或在Javascript中你可以做到
window.onload = function() {
document.getElementById("txtBox1").focus();
};