2016-04-25 42 views
-1

我試圖綁定鍵盤按鈕(最好是「ESC」)以停止在該方法內運行的代碼。但事實是,它只適用於實際的按鈕,反正有繞過這個,所以它在按標籤時也能工作嗎?如何將鍵盤鍵綁定到標籤

 private void label1_Click(object sender, EventArgs e) 
     { 

      if (e.Control && e.KeyCode.ToString() == "ESC") 
      { 
       MessageBox.Show("This does now work"); 
      } 
} 

Error

我讀的地方,有可能它只是在Visual Studio GUI犯規提供,但你可以用代碼來執行它在某種程度上,這是真的嗎?

+0

您是否嘗試使標籤可以調焦? –

+1

這是錯誤的事件處理程序。請嘗試使用keydown事件處理程序。 –

+0

我認爲問題在於標籤不關注焦點,所以keydown無法使用它。但是如果焦點不在其他元素上,那麼您是否檢查哪個控件需要關注? –

回答

0

我不確定你在做什麼。不管焦點在哪個控件上,當焦點位於表單中時,按下時會按下Escape鍵。只需將其添加到表單(當然的代碼)。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    if (keyData == (Keys.Escape)) 
    { 
     MessageBox.Show("This works"); 
     return true; 
    } 
    return base.ProcessCmdKey(ref msg, keyData); 
} 
+0

我試圖讓軟件停止運行代碼,讓我說運行該軟件和它的打字我想要能夠按ESC並使其停止鍵入。 –

+0

我提供瞭解決與您提供的代碼相對應的問題的示例代碼。您沒有提供關於您的應用程序的額外信息,指定還需要完成哪些工作。 – user34660