Comment puis-je forcer le focus d'un formulaire? .Focus()
ne fonctionne pas pour moi.
private void button1_Click(object sender, EventArgs e) {
var form = new loginForm();
if (Application.OpenForms[form.Name] == null) {
form.Show();
} else {
form.Focus();
}
}
Qu'est-ce que je fais mal?
cA devrait etre
private void button1_Click(object sender, EventArgs e) {
var form = new loginForm();
if (Application.OpenForms[form.Name] == null) {
form.Show();
} else {
Application.OpenForms[form.Name].Focus();
}
}
Vous devez d'abord afficher le formulaire - utilisez la méthode Show()
:
var form = new loginForm();
form.Show();
Modifier: (question mise à jour)
Pour un formulaire existant, appeler Activate()
pourrait être plus approprié, cela amène également le formulaire au premier plan:
private void button1_Click(object sender, EventArgs e)
{
var form = new loginForm();
if (Application.OpenForms[form.Name] == null)
{
form.Show();
}
else
{
Application.OpenForms[form.Name].Activate();
}
}
Si le formulaire est minimisé, vous devez vous abonner à l'événement Activated
pour modifier l'état de votre fenêtre en FormWindowState.Normal
:
private void loginForm_Activated(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
Essaye ça:
this.BringToFront();
this.Activate();
Au début du formulaire, nous ajoutons
this.BringToFront (); this.Activate ();