Ответы:
Установите ActiveControl
свойство формы, и вы должны быть в порядке.
this.ActiveControl = yourtextboxname;
MyTextBox.Focus();
работает - кажется, работает нормально, когда программа запущена.
this.ActiveControl = textBox1;
Каждый понимает значение слова «textBox1». "youttextboxname" звучит как... = "MyTextBox";
проверьте порядок вкладок и убедитесь, что текстовое поле установлено на ноль
Вы можете попробовать:
Согласно документации:
Метод Select активирует элемент управления, если в ControlStyles для бита стиля элемента управления установлено значение true, он содержится в другом элементе управления, и все его родительские элементы управления видимы и включены.
Сначала вы можете проверить, можно ли выбрать элемент управления, проверив свойство MyTextBox.CanSelect .
Вы не можете установить фокус на элемент управления, если он не был визуализирован. Form.Load () происходит до визуализации элементов управления.
Перейдите к событиям формы и дважды щелкните по событию «Показано». В показанном в форме обработчике события вызовите метод control.Focus ().
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
Если вы хотите установить фокус только при первом показе формы, попробуйте обработать событие 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();
}
}
}
Я решил свою проблему с изменением свойства "TabIndex" TextBox. Я установил 0 для TextBox, чтобы при запуске программы сосредоточить его на форме.
Установите значение свойства Tab Tab = 0, а затем в функции загрузки формы напишите:
YourTextboxName.Focus();
Это сработает.
Вы можете использовать textBox1.select();
или TabIndex в настройках текстового поля . TabIndex=0
сосредоточены в первую очередь.
Установите Tabstop на True и TabIndex на минимум для элемента управления, на котором вам нужно сосредоточиться.
Например, если у вас есть 2 TextBoxes: TextBox1 и TextBox2, установите Tabstop на True для обоих и TabIndex на 0 и 1 соответственно. Когда форма загрузится, фокус будет на TextBox1 и при нажатии клавиши «Tab» фокус переместится на TextBox2.
это работает для меня, установите tabindex в 0 this.yourtextbox.TabIndex = 0;
Наконец, я обнаружил проблему, которую использовал с помощью Metro Framework, и все ваши решения не будут работать с metroTextBox, и все ваши решения будут работать с обычным textBox в load, show, visibility_change, events, даже если tab tab = 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
. Но это тоже не работает!