コンテキストメニューからソースコントロールを逆引きする


■コンテキストメニューのClickイベントで「sender」オブジェクトから、 クリックイベントが発生したコントロールを取得する

 Dim objtsm As ToolStripMenuItem = sender
 Dim objcms As ContextMenuStrip = objtsm.Owner
 Dim objpic As PictureBox = objcms.SourceControl
最後の「objpic」がソースコントロールとなります。

■どんなケースで必要なのか?

プログラムで動的にコントロールを割り当てた場合 (メニューへの関連付けも動的に行われていることが前提である) 取得したコントロールに何らかの処理をすることになるかと、 上記では「PictureBox」コントロールとして宣言しているが、 「Control」としても良い、その場合、そのコントロール特有のプロパティへのアクセスは出来ず、 共通のテキストや背景色等のプロパティに限定されてしまいますが・・・

TOP ▲