2014-08-28 12 views
0

안녕 모두를 배출하지 않는 및 그림 상자가 포커스를 가질 수 없습니다 동적 비디오 플레이어 컨트롤, 더 이상이 컨트롤을 움직일 수 없으며 더 이상 초점이 맞춰지지 않습니다.동적 비디오 플레이어 초점을 기본 레이블에 의해 내가 아는

내가 시도했습니다. 비디오 플레이어를 만든 후에 초점을 맞출 수있는 사람이 있습니까? 영구 양식

예제 코드가 필요한 경우 복사 하겠지만 코드 자체는 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

+0

@terrybozzio 내가하고있는 일의 예제 코드를 추가하십시오 – user3027738

답변

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

+0

그 키를 입력으로 처리하라는 말은 구현시 키가 keydown 이벤트 (매우 기초적으로 말하기)에서 제외되기 때문입니다. – terrybozzio

+0

도움말 및 정보는 매일 새로운 것을 배우고 있습니다 ^^ – user3027738