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