2013-02-21 29 views
3

我需要關閉mdi childEsc鍵。我嘗試使用​​和keypress事件,但我甚至無法在按任何鍵時響應這些事件。esc結束mdi子

回答

3

設置窗體KeyPreview=True 的財產,並與Keydown Event

if (e.KeyCode == Keys.Escape){ 
    this.Close(); 
} 
+0

完美的答案! – Flezcano 2013-02-21 06:35:40

4

試試這個

private void Form_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Escape) 
    { 
     this.Close(); 
    } 
} 

化妝用的

Form.CancelButton Property - 獲取或設置當用戶按下ESC鍵在單擊該按鈕控制。

2

如果您的MDI表單有Close按鈕,那麼您可以在表單中指定CancelButton屬性,其ID爲Close按鈕。

所以當你按ESC鍵時,它會調用Close按鈕點擊。

更多:CancelButton

2

首先去,你必須設置Form.KeyPreview = true,你必須知道什麼是KeyUpKeyDown事件之間的差異

private void Form1_KeyUp(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Escape) 
    { 
     this.Close(); 
    } 
} 

if if你想要的KeyPress事件

private void Form1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    if (e.KeyChar == 27) 
    { 
     this.Close(); 
    } 
}