2017-03-31 118 views
-4

簡單的問題,但無法弄清楚如何做到這一點。關閉與空間的消息框

我有一個消息框只有一個「確定」按鈕,它通過捕獲輸入上的無效數據類型/格式顯示。

我想在按下空格(也是唯一一次宇宙)

後,我想我需要某種事件,檢查「確定」按鈕將被推如果空格鍵被按下(但只能)在此消息框。但不知何故,對於這樣一個簡單的任務來說,這聽起來有點不方便。

+0

有一個按鍵事件。 http://stackoverflow.com/questions/19076051/how-to-use-keypressevent-in-correct-way – Vijay

+1

這是內置的Windows窗體消息框? – stuartd

+2

簡單的答案是你不能。不是沒有使用'Form'創建自己的'MessageBox',然後處理'KeyPress'事件。 – ThePerplexedOne

回答

0

那麼,從你的標籤猜測。我想你是在談論窗口窗體在C#中。 是的,有一種方法可以做到這一點。但不像消息框那麼簡單。所有你需要做的是:

  • 創建Form和設計它像一個MessageBox
  • 覆蓋的PreviewKeydown事件處理程序(或重寫KeyPress事件處理程序也將工作)
  • 然後當Space匹配的情況下鍵被按下。

示例代碼是下面給你一個想法:

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

(注意:您也可以爲PreviewKeyDown事件創建新的事件處理程序,而不是壓倒一切的)

  • 正如你想要在顯示窗體而不是Show()方法時使用ShowDialog()作爲消息框顯示它。