2010-11-20 4 views
1

たとえば、ユーザーが「選択」できるようにするuserControlがあります。何かが選択されたことを視覚的に知らせる方法は?

private void ptbImage_Click(object sender, EventArgs e) 
{ 
    SelectControl(); 
} 

private void SelectControl() 
{ 
    this.BackColor = Color.FromArgb(235, 243, 253); 
} 

を、私は物事はすぐに厄介このユーザーコントロールの内部で多くのコントロールを持っている場合:ここでは

は、私が使用しているコードです! :Pすべてのコントロールをグローバルにラップするには?コントロール内のすべてのClickイベントと同様です。存在しない場合は、すべてのコントロールが入力をグローバルにキャプチャする場合でも、手動でクリックを作成するだけです。ありがとう!

alt text

+0

これらのコントロールは同じタイプですか? – Homam

答えて

1

はい...

あなたはこのように、同じイベントメソッドに各コントロールのイベントをリンクすることができます..

ptbImage1.Click += new System.EventHandler(ptbImage_Click); 
ptbImage2.Click += new System.EventHandler(ptbImage_Click); 
ptbImage3.Click += new System.EventHandler(ptbImage_Click); 

などで

0

をフォームのInitializeComponentメソッドを使用すると、フォーム上のすべてのコントロールからforeachを実行し、ClickイベントハンドラをptbImage_Clickに設定することができます

0
foreach (Control ctrl in yourContainerControl.Controls) { 
    ctrl.Click += new System.EventHandler(ctrl_Click); 
} 

イベントをアプリケーション全体でキャプチャし、コントロール自体に転送される前に処理することもできます。

関連する問題