2017-03-31 2 views
-4

Einfache Frage, aber kann nicht herausfinden, wie dies zu tun ist.Schließen einer Nachricht mit Leerzeichen

Ich habe eine Messagebox mit nur einer einzigen "OK" -Schaltfläche, die durch Abfangen ungültiger Datentypen/Formate auf Eingaben erscheint.

Ich möchte, dass die „OK“ -Taste gedrückt wird, nachdem die Leertaste drücken (und nur Raum)

Ich glaube, ich irgendeine Art von Ereignis benötigen, die, wenn die Leertaste überprüft gedrückt wird (aber nur) auf das Nachrichtenbox. Aber irgendwie klingt es für eine so einfache Aufgabe etwas zu unbequem.

+0

gibt es ein Tastendruckereignis. http://stackoverflow.com/questions/19076051/how-to-use-keypressevent-in-correct-way – Vijay

+1

Ist dies die integrierte Windows Forms MessageBox? – stuartd

+2

Die einfache Antwort ist, dass Sie nicht können. Nicht ohne eine eigene "MessageBox" zu erstellen, indem man eine 'Form' verwendet, die dann das' KeyPress'-Ereignis behandelt. – ThePerplexedOne

Antwort

0

Nun, Raten von Ihren Tags. Ich denke, Sie sprechen über Windows Forms in C#. Ja, es gibt einen Weg, das zu tun. Aber nicht so einfach wie eine Nachrichtenbox. Alles, was Sie tun müssen, ist:

  • ein Form erstellen und es wie ein (werden auch funktionieren oder überwiegende KeyPress Event-Handler) MessageBox
  • Aufschalten die PreviewKeydown Ereignishandler
  • Und dann passen den Fall, wenn Space Entwerfen Taste wird gedrückt.

Ein Beispielcode ist unter Ihnen eine Idee zu geben:

switch (e.KeyCode) 
{ 
    case Keys.Space: 
     //Call The Event handler for Ok Button 
     e.Handled = true; 
     e.Suppressed = true; 
     break; 
} 

(. Hinweis: Sie können auch neue Event-Handler für PreviewKeyDown Ereignis erstellen, anstatt des überwiegenden)

  • Wie Sie Möchten Sie es als eine Messagebox anzeigen, verwenden Sie ShowDialog(), wenn Sie das Formular anstelle der Show() -Methode anzeigen.
Verwandte Themen