2012-12-14 35 views
-2

我做了一個自定義文本編輯器控件,它處理箭頭鍵。問題是,當一個表單中有多個控件時,箭頭鍵處理就排隊了:在第一次使用集中控件處理事件時,下一次使用另一個自定義控件時,再次聚焦控件等等。那麼我應該怎麼做才能使用自定義文本編輯器控件處理箭頭鍵,而不是使用表單上的所有控件?如果在窗體上有多個控件,自定義控件之間的修復鍵處理衝突?

+0

目前尚不清楚你所要完成 – thomaux

+0

對不起,我的英語不好的東西。我只是想解決箭頭鍵處理的不尋常行爲。我認爲這個箭頭鍵應該是用專注的自定義控件進行處理,而不是通過旋轉的形式將所有的自定義控件放在一個表單中。 – Tohares

+0

沒有汗水,只是指出你的問題 – thomaux

回答

0

一個問題實際上是因爲帶有箭頭鍵的WinForm導航。所以我禁用了我的文本編輯器的導航。對於OnPreviewKeyDown事件overrided像例如:

protected override void OnPreviewKeyDown(PreviewKeyDownEventArgs e) 
    { 
     base.OnPreviewKeyDown(e); 

     switch (e.KeyCode) 
     { 
      case Keys.Up: 
      case Keys.Down: 
      case Keys.Left: 
      case Keys.Right: 
       e.IsInputKey = true; 
       break; 
      default: 
       break; 
     } 
    } 
0

您應該使用KeyEventArgs對象進行處理。任何使用關鍵事件的控件都應該將KeyEventArgs.Handled屬性設置爲true,以表明它們已經這樣做了。

+0

感謝您的回答,但它不能幫助我。 – Tohares

相關問題