Mon problème semble être assez simple, mais cela ne fonctionne pas de manière intuitive.VB.NET: La boîte de dialogue se ferme-t-elle lorsque vous appuyez sur Entrée?
Je suis en train de concevoir une application Windows Forms, et il y a une boîte de dialogue qui NE DOIT PAS quitter lorsque la touche Entrée est enfoncée, mais qui doit d'abord valider les données, ComboBox.
J'ai essayé en lui disant quoi faire sur pression de touche du ComboBox si e est le Entrez clé:
Private Sub ComboBoxSizeChoose_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBoxSizeChoose.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Enter) Then
Try
TamanhoDaNovaFonte = Single.Parse(ComboBoxSizeChoose.Text)
Catch ex As Exception
Dim Dialogo2 As New Dialog2
Dialog2.ShowDialog()
ComboBoxSizeChoose.Text = TamanhoDaNovaFonte
End Try
End If
End Sub
Mais sans succès jusqu'à présent. Lorsque la touche Enter est enfoncée, même avec le ComboBox sur le focus, la boîte de dialogue entière est fermée, en revenant au formulaire précédent. La validation est PAS fait du tout, et cela doit être fait avant de quitter. En fait, je ne veux même pas quitter sur le formulaire d'entrée KeyPress, le seul but de la touche d'entrée sur l'ensemble de la boîte de dialogue est de valider la ComboBox (mais seulement en focus, pour une interface utilisateur intuitive).
J'ai également essayé d'ajouter la validation à l'événement KeyPress du formulaire de la boîte de dialogue entière, si la clé est Entrez. SANS SUCCÈS! C'est comme si mon code n'était pas là du tout.
Que dois-je faire?
(Visual Studio 2008, VB.NET)
Cela empêchera la fermeture de la boîte de dialogue, mais le bouton OK ne fonctionne plus comme prévu. – Marc
Vous devez ajouter un gestionnaire d'événements click au bouton OK et définir la propriété DialogResult du formulaire, puis fermez le formulaire. Cela fera en sorte qu'il se comportera comme une boîte de dialogue, mais forcera l'utilisateur à utiliser la souris au lieu d'appuyer sur Entrée pour fermer la boîte de dialogue. –
@Reed, ce que vous décrivez est déjà le comportement par défaut dans les winforms VB .NET. Le bouton OK possède un gestionnaire d'événements click qui définit le résultat du dialogue et le ferme. – Marc