2014-08-28 45 views
0

大家好,我知道默認標籤和圖片框不能具有焦點,我設計的窗體鍵按下的方法將這些控件關於使用箭頭按鈕動態視頻播放器不會釋放焦點

當我做一個動態視頻播放器控制,我可以不再移動這些控件也沒有形式似乎獲得焦點了

我已經嘗試過this.Focus後使視頻播放器,有什麼人可以想到的,也許可以繼續專注於永久形式

如果示例代碼是需要我會複製,但代碼本身似乎是fi NE視頻播放器只是不斷的焦點

表1的keydown

 if (SenderS == "Label") 
     { 
      // Label b = sender as Label; 
      Label b = (Label)Controls[ControlID]; 
      int x = b.Location.X; 
      int y = b.Location.Y; 

      if (e.KeyCode == Keys.Right) x += 1; 
      else if (e.KeyCode == Keys.Left) x -= 1; 
      else if (e.KeyCode == Keys.Up) y -= 1; 
      else if (e.KeyCode == Keys.Down) y += 1; 

      b.Location = new Point(x, y); 
     } 

標籤鼠標按下

 SenderS = "Label"; 
     Label b=sender as Label; 

     ControlID = b.Name; 

此代碼工作正常,但是當視頻被添加到形式,我可以不再使用它 我假設,因爲表單不再接受keydown事件

+0

和你在做什麼的代碼是....... ?? – terrybozzio 2014-08-28 16:10:35

+0

@terrybozzio我添加了我在做什麼的示例代碼 – user3027738 2014-08-28 16:43:15

回答

0

作爲通用目的,您首先需要重寫IsInputKey方法:

 private void YourControl_KeyDown(object sender, KeyEventArgs e) 
     { 
      //your logic here 
     } 

     protected override bool IsInputKey(System.Windows.Forms.Keys keyData) 
     { 
      switch (keyData) 
      { 
       case Keys.Right: 
       case Keys.Left: 
       case Keys.Up: 
       case Keys.Down: 
        return true; 
      } 
      return base.IsInputKey(keyData); 
     } 

或重寫ProcessCmdKey方法。

+0

這解決了我的問題,我將其標記爲正確的,雖然我不明白爲什麼介意解釋它的作用? – user3027738 2014-08-28 17:02:53

+0

它的說法是將這些鍵作爲輸入,因爲在實現中,這些鍵從keydown事件中排除(非常基本的說法)。 – terrybozzio 2014-08-28 17:07:00

+0

感謝您的幫助和我每天都會學到新知識的信息^^ – user3027738 2014-08-28 17:16:19