Antworten:
Legen Sie die ActiveControl
Eigenschaft des Formulars fest und es sollte Ihnen gut gehen.
this.ActiveControl = yourtextboxname;
MyTextBox.Focus();
funktioniert - das scheint gut zu funktionieren, sobald das Programm ausgeführt wird.
this.ActiveControl = textBox1;
Jeder versteht die Bedeutung von "textBox1". "youttextboxname" klingt wie... = "MyTextBox";
Du könntest es versuchen:
Laut Dokumentation:
Die Select-Methode aktiviert das Steuerelement, wenn das Selectable Style-Bit des Steuerelements in ControlStyles auf true gesetzt ist, es in einem anderen Steuerelement enthalten ist und alle übergeordneten Steuerelemente sichtbar und aktiviert sind.
Sie können zunächst überprüfen, ob das Steuerelement auswählbar ist, indem Sie die Eigenschaft MyTextBox.CanSelect überprüfen .
Sie können den Fokus nicht auf ein Steuerelement setzen, wenn es nicht gerendert wurde. Form.Load () tritt auf, bevor die Steuerelemente gerendert werden.
Gehen Sie zu den Ereignissen des Formulars und doppelklicken Sie auf das Ereignis "Angezeigt". Rufen Sie im angezeigten Ereignishandler des Formulars die Methode control.Focus () auf.
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
Wenn Sie den Fokus nur beim ersten Anzeigen des Formulars festlegen möchten , versuchen Sie, das Form.Shown- Ereignis zu behandeln und dort auszuführen . Verwenden Sie andernfalls Control.VisibleChanged .
Der Grund, warum Sie es nicht zum Laufen bringen können, ist, dass das Load
Ereignis aufgerufen wird, bevor das Formular gezeichnet oder gerendert wird.
Es ist, als würde man einer Pizzeria erzählen, wie man ihre Pizza macht, und sie dann bitten, Ihnen ein Bild davon zu schicken, wie viel Peperoni auf Ihrer Pizza ist, bevor sie es 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();
}
}
}
Ich habe mein Problem mit der Änderung der "TabIndex" -Eigenschaft von TextBox gelöst. Ich habe 0 für TextBox gesetzt, damit ich es beim Start des Programms auf Form fokussieren kann.
Setzen Sie den Wert der Tab Index-Eigenschaft auf 0 und schreiben Sie dann in die Formularladefunktion:
YourTextboxName.Focus();
Es wird klappen.
Sie können entweder textBox1.select();
oder den TabIndex in der Textfeldeinstellung verwenden. TabIndex=0
zuerst fokussiert.
Setzen Sie Tabstop auf True und TabIndex auf das Minimum des Steuerelements, auf das Sie sich konzentrieren müssen.
Beispiel: Wenn Sie 2 TextBoxen haben: TextBox1 und TextBox2, setzen Sie Tabstop für beide auf True und TabIndex auf 0 bzw. 1. Wenn das Formular geladen wird, liegt der Fokus auf TextBox1 und beim Drücken der Tabulatortaste wird der Fokus auf TextBox2 verschoben.
es hat bei mir funktioniert setze tabindex auf 0 this.yourtextbox.TabIndex = 0;
Schließlich fand ich das Problem, dass ich Metro Framework verwendet habe und alle Ihre Lösungen funktionieren nicht mit metroTextBox, und alle Ihre Lösungen funktionieren mit normalen TextBox in Laden, Zeigen, Sichtbarkeitsänderung, Ereignissen, sogar der Registerkartenindex = 0 ist gültig.
// 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();
}
In jquery setze den Fokus
$(function() {
$("#txtBox1").focus();
});
oder in Javascript können Sie tun
window.onload = function() {
document.getElementById("txtBox1").focus();
};
c#
und gekennzeichnet winforms
.
ComboBox
. Aber es funktioniert auch nicht!