-2

在我的C#窗體窗體應用程序中我希望用戶能夠通過按下鍵盤上的刪除鍵來刪除節點,並且已經實現了看似正確的代碼,但是當刪除鍵被按下時什麼都沒有發生。C#Windows窗體刪除鍵沒有響應

 private void treeView1_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys .Delete) 
     { 

      if (treeView1.SelectedNode != null) 
      { 
       treeView1.SelectedNode.Remove(); 
      } 
     } 

這是我試圖用來實現所需功能的代碼。

+0

你是否已經在處理程序中放置了一個斷點以查看該代碼是否已被執行? –

+0

我剛剛嘗試過,看起來問題的代碼甚至從未執行 – Nick

+0

視圖可能只是焦點不清,在這種情況下,它不會收到關鍵事件。所以,你要麼專注於programmaticaly:treeView.Focus(...),要麼使用CoreWindow來代替:Window.Current.CoreWindows.KeyDown + = ... – cyanide

回答

0

鍵盤鍵碼檢查對我來說看起來很好,這對我說treeView1.SelectedNode可能返回null。

0

我今天遇到了這個問題,並嘗試了很多方法來解決它。 MSDN實際上給出了答案。下面是我把public Form1()

this.KeyPreview = true; 
this.KeyDown += new KeyEventHandler(Form1_KeyDown); 

我剛學習C#本週兩個代碼,所以我試圖找出代碼的含義。只希望這種方法適用於需要的人。

如果有人能解釋上面的代碼,我將非常感謝。