DOBON.NET DOBON.NETプログラミング掲示板過去ログ

どのコントロールを右クリックしてContextMenuを表示したかを調べる

環境/言語:[WindowsXP,VB.NET]
分類:[.NET]

いつも参考にさせていただいております。

右クリックしたオブジェクトを取得したく、下記のようにプログラムしました。

Private Sub ContextMenu1_Popup(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles ContextMenu1.Popup
'ContextMenuを表示しているコントロールを表示する
Console.WriteLine(ContextMenu1.SourceControl)
End Sub

・参考にした文献
どのコントロールを右クリックしてContextMenuを表示したかを調べる
http://dobon.net/vb/dotnet/control/cmsourcecontrol.html

現象は、テキストボックスやボタンはコントロールの情報を
取得できるのですが、リッチテキストボックスの場合のみ
うまくいきません。
この場合、SourceControl に前のオブジェクトの内容が
残っているようです。
リッチテキストの場合は、特別なことをしなければいけないのでしょうか?

どうかよろしくお願いします。
■No5552に返信(ゆうこりんさんの記事)

 ゆうこりんさん、こんばんは。深山と申します。

> 現象は、テキストボックスやボタンはコントロールの情報を
> 取得できるのですが、リッチテキストボックスの場合のみ
> うまくいきません。
> この場合、SourceControl に前のオブジェクトの内容が
> 残っているようです。
> リッチテキストの場合は、特別なことをしなければいけないのでしょうか?

 こちらでもいくつかのコントロールで試してみました。やはりリッチ テキスト ボックスでは
望むような動作をしないようです。
 少し調べてみたところ、次のようなやり取りが見つかりました。どうやらバグらしいです。

http://www.dotnet247.com/247reference/msgs/41/209983.aspx


 他の手段で判別する必要がありそうですね。
深山さん、早々のお答えありがとうございます。

何か別の方法でごまかすことにしますぅ。



>  こちらでもいくつかのコントロールで試してみました。やはりリッチ テキスト ボックスでは
> 望むような動作をしないようです。
>  少し調べてみたところ、次のようなやり取りが見つかりました。どうやらバグらしいです。
>
> http://www.dotnet247.com/247reference/msgs/41/209983.aspx
>
>
>  他の手段で判別する必要がありそうですね。

DOBON.NET | プログラミング道 | プログラミング掲示板