2012-04-30 11 views
2

UserControlのデザイン時にPanelを追加しました。UserControlのPanel内でイベントが発生しないように入力します。

その後、私は、フォームにこのコントロールを追加しました。

私は、コントロールにフォーカスがあるときにフォーカス点線の境界線を示したいと思います。

残念ながら、パネルからEnterイベントを発生させません。ユーザーコントロール自体をクリックするだけで火事が発生します。この質問を拡張するために

。ユーザーコントロール内のコントロールから基本ユーザーコントロールにイベントを転送するにはどうすればよいですか? Hans Passantのコメントthisの質問によれば、デフォルトでイベントは直接の親に転送されます。私はコントロールのプロパティを変更しませんでした。私は間違って何をしていますか?未処理のイベントを強制的に転送するためには、各コントロールを変更する必要のある明白なプロパティがありますか?

私はDevExpressコントロールを使用していますが、この動作はWindows WinFormsコントロールでも同じです。

編集:私はパネルがフォーカスを得ることができないことを理解しています。これが当てはまる場合、各マウスイベントを親コントロールにどのように転送するのですか?

+0

あなたがちょうどそれの内側パネルを無効にするために、 'Enter'とユーザーコントロールの' Leave'イベントを使用しないでくださいをトリガすることができますか? – LarsTech

+0

パネルをクリックすると、UserControlのEnterイベントが発生しません。それは私の問題 – Odys

+2

の可能な重複[パネルのフォーカスを得ない](http://stackoverflow.com/questions/3562235/panel-not-getting-focus) –

答えて

2

あなたのコメントに基づいて、ユーザーコントロール内から、パネルのMouseDownイベントを処理し、親コントロールにフォーカスを設定するには:

public UserControl1() { 
    InitializeComponent(); 
    panel1.MouseDown += new MouseEventHandler(panel1_MouseDown); 
} 

void panel1_MouseDown(object sender, MouseEventArgs e) { 
    if (!this.Focused) 
    this.Focus(); 
} 
0

利用panel1.Select()パネルのMouseClickとイベントで、あなたがしますpanel1.Enterとpanel1.Leave

関連する問題