Top > プログラミング > .NET Tips> どのコントロールを右クリックしてコンテキストメニューを表示したかを調べる

どのコントロールを右クリックしてコンテキストメニューを表示したかを調べる」への評価、コメント

評価

良い / 悪い = 21 / 4 (「良い」の割合 = 0.840 , 人気度 = 1.174

評価する

コメント一覧


通常のコメント
匿名 2023/04/1 (Sat) 13:36:17
対象のコントロールを取得するのは、こんな感じではどうでしょうか。

Private Function GetMenuStripSourceControl(vMenuItem As ToolStripMenuItem) As Control
Dim ans As Control = Nothing
Try
Dim obj As Object = vMenuItem.GetCurrentParent()
Select Case obj.GetType
Case GetType(ContextMenuStrip)
ans = CType(obj, ContextMenuStrip).SourceControl
Case GetType(ToolStripDropDownMenu)
ans = GetMenuStripSourceControl(CType(obj, ToolStripDropDownMenu).OwnerItem)
End Select
Catch ex As Exception
Throw (ex)
End Try
Return ans
End Function

Private Sub SomeLayerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SomeLayerToolStripMenuItem.Click
Dim tmpMenuItem As ToolStripMenuItem = DirectCast(sender, ToolStripMenuItem)

Dim sourceCtl As Control = GetMenuStripSourceControl(tmpMenuItem)

End Sub

通常のコメント
NSR 2016/10/22 (Sat) 20:14:27
NotifyIcomのcontextmenustripから呼び出した場合OpeningでもSourceControlが取れない気がするんですけど確認していただけますでしょうか

通常のコメント
管理人 2014/09/28 (Sun) 02:00:18
> ContextMenuStrip上にToolStripMenuItemを階層的に配置し、下階層のToolStripMenuItemをクリックした場合
> ContextMenuStrip.SourceControlがNothingになるようです。

ご報告ありがとうございます。記事に追記させていただきます。

評価の理由
匿名 2014/07/8 (Tue) 11:54:56
評価:悪い
nullになります

通常のコメント
ブラブラ 2013/07/11 (Thu) 09:43:12
ContextMenuStrip上にToolStripMenuItemを階層的に配置し、下階層のToolStripMenuItemをクリックした場合
ContextMenuStrip.SourceControlがNothingになるようです。

通常のコメント
NOthing 2013/03/8 (Fri) 14:38:26
Spread7.0J for WindowsFormにて動作確認しまいた。

評価の理由
極悪人 2012/12/21 (Fri) 18:57:19
評価:悪い
よくわからん

通常のコメント
とくめー 2005/05/6 (Fri) 04:34:58
RichTextBoxだけ使えない…ですね。
何故かnullが返ってきます。

通常のコメント
とくめー 2005/05/6 (Fri) 04:28:53
これって、TextBoxだけ(?)にしか使えないんですね。
RichTextBoxだと使えませんでした。

評価の理由
匿名 2004/02/25 (Wed) 02:41:16
評価:良い
タイトルがわかりやすく、かつ内容も役立つものだった。

コメントの投稿

[説明]