wake-up-neo.net

wie kann man den Fokus auf TextBox legen, wenn das Formular geladen wird?

Ich habe in meinem C # Programm textBox

Ich brauche das, wenn das Programm startet, liegt der Fokus auf der TextBox

Ich versuche dies bei Form_Load:

MyTextBox.Focus();

aber es wird nicht funktionieren

134
Gali

Legen Sie dieActiveControl-Eigenschaft des Formulars fest und Sie sollten in Ordnung sein.

this.ActiveControl = yourtextboxname;
301
V4Vendetta

Überprüfen Sie Ihre Tab-Reihenfolge und stellen Sie sicher, dass das Textfeld auf Null gesetzt ist

21
Spacemancraig

Du könntest es versuchen: 

MyTextBox.Select ();

Laut der Dokumentation:

Die Select-Methode aktiviert das Steuerelement, wenn das Steuerelement Selectable Das Stilbit ist in ControlStyles auf true gesetzt, es ist in einem anderen .__ enthalten. Steuerelement und alle übergeordneten Steuerelemente sind sichtbar und aktiviert.

Sie können zunächst prüfen, ob das Steuerelement auswählbar ist, indem Sie die MyTextBox.CanSelect -Eigenschaft untersuchen.

14
Neil Knight

Wenn Sie den Fokus nur beim ersten Anzeigen des Formulars festlegen möchten, versuchen Sie, das Ereignis Form.Shown zu behandeln und es dort auszuführen. Andernfalls verwenden Sie Control.VisibleChanged .

12
Andy Johnson

Sie können den Fokus nicht auf ein Steuerelement setzen, wenn es nicht gerendert wurde. Form.Load () tritt vor dem Rendern der Steuerelemente auf.

Gehen Sie zu den Ereignissen des Formulars und doppelklicken Sie auf das Ereignis "Gezeigt". Rufen Sie im angezeigten Formular des Ereignishandlers die Methode control.Focus () auf. 

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

Textbox.Focus() "Versuche", um den Fokus auf das Textboxelement zu setzen. Wenn das Element beispielsweise nicht sichtbar ist, funktioniert Focus() nicht. Stellen Sie daher sicher, dass Ihr Element sichtbar ist, bevor Sie Focus() aufrufen.

5
GRC

Der Grund, warum Sie es nicht zum Laufen bringen können, ist, dass das Ereignis Load aufgerufen wird, bevor das Formular gezeichnet oder gerendert wird.

Es ist so, als würde man einem Pizza-Ort sagen, wie man seine Pizza zubereitet, und dann bittet man sie, ihnen ein Bild von der Menge der Peperoni zu schicken, die sie auf ihrer Pizza haben, bevor sie sie gemacht haben.

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

verwenden Sie das abgebildete Event und Set

MyTextBox.Focus();
3
Nitin...

Ich habe mein Problem mit dem Ändern der "TabIndex" -Eigenschaft von TextBox behoben. Ich setze 0 für TextBox, damit ich es beim Starten des Programms auf Formular fokussieren möchte.

3

Setzen Sie den Wert der Tab-Index-Eigenschaft = 0 und schreiben Sie dann in die Formularladefunktion:

YourTextboxName.Focus();

Es wird klappen.

2
Shakaib Akhtar

es hat für mich funktioniert setze tabindex auf 0 this.yourtextbox.TabIndex = 0;

0
Muhafil Saiyed

Setzen Sie Tabstop auf True und TabIndex auf das Minimum des Steuerelements, für das Sie den Fokus benötigen.

z.B. Wenn Sie über 2 TextBoxes verfügen: TextBox1 und TextBox2, setzen Sie Tabstop für beide und True für TabIndex auf 0 bzw. 1. Wenn das Formular geladen wird, befindet sich der Fokus auf TextBox1 und beim Drücken der Tabulatortaste wird der Fokus auf TextBox2 verschoben.

0
Aparna Ratheesh

Gehen Sie zu den Ereignissen des Formulars und doppelklicken Sie auf das Ereignis "Gezeigt". Rufen Sie im angezeigten Formular des Ereignishandlers die Methode control.Focus () auf.

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

Ich mag es ... Danke!

0
Ghayas

Sie können entweder textBox1.select(); oder die TabIndex in der Textbox-Einstellung verwenden. TabIndex=0 fokussierte zuerst.

0
user9248597