2017-01-07 2 views
1

J'utilise le code ci-dessous pour créer un MessageBox avec dialogue. Par défaut, le bouton Oui a le focus. Si j'appuie accidentellement sur la touche Espace, la boîte de dialogue comprend que j'ai sélectionné Oui. Je ne le veux que si j'appuie sur la touche de retour pour déclencher l'événement. Existe-t-il un moyen de désactiver la clé Espace de soumettre la réponse?DialogResult MessageBox désactive la touche Espace (barre d'espace) de la réponse soumise

DialogResult dialogResult = MessageBox.Show(sMsg, "Title", MessageBoxButtons.YesNo); 
if(dialogResult == DialogResult.Yes) 
{ 
    // do something 
} 
else if (dialogResult == DialogResult.No) 
{ 
    // do something else 
}       

Répondre

0

Visual Vincent a précisé qu'il est préférable de créer son propre formulaire de dialogue, au lieu de s'appuyer sur MessageBox.Show().

1

Essayez ceci:

MessageBox.Show(this, "MessageText", "MessageCaption", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No, MessageBoxOptions.None); 

le paramètre "MessageBoxResult.No" est la valeur du résultat du dialogue par défaut.

+0

Merci David. J'ai utilisé MessageBox.Show (sMsg, sTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.ServiceNotification, false); et cela a changé le bouton par défaut de Oui à Non. Cependant, je suis intéressé à désactiver la clé d'espace de soumettre une réponse. Je pourrais faire une autre forme juste pour ce MessageBox et gérer les événements clés pour chaque bouton, mais cela me semble inutile. –

+0

@Nick_F: Eh bien, c'est plus facile à faire que de créer un hook clavier global pour intercepter la touche de la barre d'espace (qui est une autre option, mais plus difficile). –

+1

@Nick_F: J'ai vu de nombreuses questions dans différents forums au cours des années où ils veulent modifier le comportement des boîtes de dialogue Windows. La réponse est simple: ce n'est pas possible (ou peut-être plus correctement: c'est trop dur pour le développeur habituel). Par conséquent, il est toujours préférable de créer votre propre dialogue lorsque vous voulez un comportement différent. –