Devrait être simple, mais ... :)Désactiver temporairement le bouton
Je n'ai qu'un bouton sur le formulaire. Le bouton appelle une fonction, qui prend 10 secondes à exécuter (par exemple). Je voudrais désactiver temporairement le bouton pendant ce temps, de sorte que si l'utilisateur appuie sur la touche Entrée pendant que la fonction est en cours d'exécution, rien ne se passera.
Mais maintenant cela fonctionne de cette façon: l'utilisateur appuie sur Entrée et le bouton est désactivé. Pendant ces 10 secondes, l'utilisateur appuie à nouveau sur la touche Entrée et lorsque la première fonction se termine, elle est à nouveau appelée. Je voudrais empêcher cela, de sorte que la touche Entrée ne fonctionne que lorsque le bouton est à nouveau activé. Tout est dans le même fil.
Mon code:
private void button1_Click(object sender, EventArgs e)
{
Debug.WriteLine("Click");
button1.Enabled = false;
Thread.Sleep(3000); // simulate something...
button1.Enabled = true;
button1.Focus();
}
Edit: la fonction imprime quelque chose sur l'imprimante. Grâce à la fonction API d'une imprimante, je peux déterminer quand l'impression a été terminée, seulement alors le bouton peut être activé à nouveau.
avez-vous essayé ** this.AcceptButton = null ** et après avoir terminé ensemble ** this.AcceptButton = button1 ** en plus de basculer ** Enabled ** – V4Vendetta
Que fait la fonction? – jfs
@ V4Vendetta - aucune différence. – sventevit