Как сосредоточиться на TextBox при загрузке формы?

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

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

Я пробую это в Form_Load:

MyTextBox.Focus();

но он не работает

Ответ 1

Задайте свойство ActiveControl формы, и все будет в порядке.

this.ActiveControl = yourtextboxname;

Ответ 2

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

Ответ 3

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

MyTextBox.Select();

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

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

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

Ответ 4

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

Ответ 5

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

Перейдите к событиям формы и дважды щелкните по событию "Shown". В форме, показанной обработчиком события, вызовите метод control.Focus().

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

Ответ 6

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

Ответ 7

Причина, по которой вы не можете заставить ее работать, заключается в том, что событие 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();
        }
    }
}

Ответ 8

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

MyTextBox.Focus();

Ответ 9

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

Ответ 10

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

YourTextboxName.Focus();

Это будет работать.

Ответ 11

это сработало для меня установить tabindex на 0 this.yourtextbox.TabIndex = 0;

Ответ 12

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

Ответ 13

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

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

Ответ 14

в своей форме перейдите в свойства и убедитесь, что для свойства "TopMost" установлено значение true, это решит вашу проблему.

Ответ 15

В фокусе фокуса jquery

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

или в Javascript, который вы можете сделать

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