как поставить фокус на текстовое поле при загрузке формы?


У меня в моей программе C# textBox

Мне нужно, чтобы при запуске программы внимание было сосредоточено на текстовом поле

Я пробую это на Form_Load:

MyTextBox.Focus();

но это не будет работать

14 126

14 ответов:

установитьActiveControl свойства формы и вы должны быть хорошо.

this.ActiveControl = yourtextboxname;

проверьте порядок вкладок и убедитесь, что текстовое поле установлено на ноль

вы можете попробовать:

MyTextBox.Select ();

согласно документации:

метод Select активирует элемент управления, если элемент управления выбирается бит стиля имеет значение true в ControlStyles, он содержится в другом элемент управления и все его родительские элементы управления отображаются и включены.

вы можете сначала проверить, можно ли выбрать элемент управления, проверив MyTextBox.В соответствии места использования собственность.

Если вы хотите установить фокус только при первом отображении формы, попробуйте обработать форма.Показано событие и делать это там. В противном случае используйте управление.VisibleChanged.

вы не можете установить фокус на элемент управления, если она не была оказана. Форма.Load () происходит перед отображением элементов управления.

перейдите к событиям формы и дважды щелкните событие "показано". В показанном обработчике событий формы вызовите элемент управления.Фокус() метод.

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

Textbox.Focus() "пытается" установить фокус на элементе textbox. В случае, если видимость элемента скрыта, например,Focus() не будет работать. Поэтому убедитесь, что ваш элемент перед вызовом Focus().

причина вы не можете заставить его работать, потому что 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();
        }
    }
}

использовать форму показано событие и установить

MyTextBox.Focus();

Я решил свою проблему с изменением свойства "TabIndex" текстового поля. Я установил 0 для текстового поля, которое я хочу сосредоточить на форме при запуске программы.

Это сработало для меня установить tabindex значение 0 этот.ваш текстбокс.TabIndex = 0;

можно использовать textBox1.select(); или TabIndex в настройках текстового поля. TabIndex=0 фокусируется первым.

установите Tabstop в True и TabIndex до минимума для элемента управления, на котором вам нужно сосредоточиться.

например, если у вас есть 2 текстовых поля : TextBox1 и TextBox2, установите Tabstop в True для обоих и TabIndex в 0 и 1 соответственно. Когда форма загружается, фокус будет на TextBox1 и при нажатии клавиши "Tab", фокус переместится на TextBox2.

установите значение свойства Tab Index = 0, а затем в функции загрузки формы напишите:

YourTextboxName.Focus();

Он будет работать.

в jquery установите фокус

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

или в JavaScript, вы можете сделать

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