it-swarm.com.ru

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

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

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

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

MyTextBox.Focus();

но это не сработает

134
Gali

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

this.ActiveControl = yourtextboxname;
301
V4Vendetta

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

21
Spacemancraig

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

MyTextBox.Select ();

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

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

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

14
Neil Knight

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

12
Andy Johnson

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

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

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

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

5
GRC

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

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

MyTextBox.Focus();
3
Nitin...

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

3
Mehmet Taha Meral

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

YourTextboxName.Focus();

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

2
Shakaib Akhtar

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

0
Muhafil Saiyed

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

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

0
Aparna Ratheesh

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

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

Мне это нравится ... Спасибо!

0
Ghayas

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

0
user9248597