Réponses:
Définissez la ActiveControl
propriété du formulaire et tout devrait bien se passer.
this.ActiveControl = yourtextboxname;
MyTextBox.Focus();
fonctionné - cela semble bien fonctionner une fois que le programme est en cours d'exécution.
this.ActiveControl = textBox1;
Tout le monde comprend la signification de "textBox1". "youttextboxname" ressemble à... = "MyTextBox";
vérifiez votre ordre de tabulation et assurez-vous que la zone de texte est définie sur zéro
Tu pourrais essayer:
Selon la documentation:
La méthode Select active le contrôle si le bit de style sélectionnable du contrôle est défini sur true dans ControlStyles, il est contenu dans un autre contrôle et tous ses contrôles parents sont à la fois visibles et activés.
Vous pouvez d'abord vérifier si le contrôle peut être sélectionné en inspectant la propriété MyTextBox.CanSelect .
Vous ne pouvez pas définir le focus sur un contrôle s'il n'a pas été rendu. Form.Load () se produit avant le rendu des contrôles.
Accédez aux événements du formulaire et double-cliquez sur l'événement "Montré". Dans le gestionnaire d'événements affiché du formulaire, appelez la méthode control.Focus ().
private void myForm_Shown(object sender, EventArgs e)
{
// Call textbox's focus method
txtMyTextbox.Focus();
}
Si vous souhaitez uniquement définir le focus la première fois que le formulaire est affiché, essayez de gérer l' événement Form.Shown et de le faire à cet endroit . Sinon, utilisez Control.VisibleChanged .
La raison pour laquelle vous ne pouvez pas le faire fonctionner est que l' Load
événement est appelé avant que le formulaire ne soit dessiné ou rendu.
C'est comme dire à une pizzeria comment faire votre pizza, puis leur demander de vous envoyer une photo de la quantité de pepperoni sur votre pizza avant de la préparer.
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();
}
}
}
J'ai résolu mon problème avec la modification de la propriété "TabIndex" de TextBox. J'ai mis 0 pour TextBox que je veux me concentrer sur Form lorsque le programme démarre.
utiliser le formulaire affiché et définir l'événement
MyTextBox.Focus();
Définissez la valeur de la propriété Index Tab = 0, puis dans la fonction de chargement du formulaire, écrivez:
YourTextboxName.Focus();
Ça va marcher.
Vous pouvez utiliser soit textBox1.select();
le paramètre TabIndex dans la zone de texte. TabIndex=0
focalisé en premier.
Définissez Tabstop sur True et TabIndex au minimum sur le contrôle sur lequel vous devez vous concentrer.
Par exemple, si vous avez 2 TextBoxes: TextBox1 et TextBox2, définissez Tabstop sur True pour les deux et TabIndex sur 0 et 1 respectivement. Lorsque le formulaire se charge, le focus sera sur TextBox1 et en appuyant sur la touche «Tab», le focus se déplacera vers TextBox2.
cela a fonctionné pour moi définir tabindex à 0 this.yourtextbox.TabIndex = 0;
Enfin, j'ai trouvé le problème que j'utilisais avec le framework metro et toutes vos solutions ne fonctionneront pas avec metroTextBox, et toutes vos solutions fonctionneront avec textBox normal en load, show, visibilité_change, événements, même l'onglet index = 0 est valide.
// 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();
}
Dans jquery, définir le focus
$(function() {
$("#txtBox1").focus();
});
ou en Javascript, vous pouvez faire
window.onload = function() {
document.getElementById("txtBox1").focus();
};
c#
et winforms
.
ComboBox
. Mais ça ne marche pas non plus!