C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ContextMenuStrip.SourceControl


(過去ログ 84 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■50036 / inTopicNo.1)  ContextMenuStrip.SourceControl
  
□投稿者/ プリンEX (1回)-(2010/05/26(Wed) 22:53:13)

分類:[VB.NET/VB2005 以降] 

ContextMenuStripを開いた元のコントロール取得する方法として、
SourceControlを参照すればいいということが以下に書かれていますが、

http://bbs.wankuma.com/index.cgi?mode=al2&namber=49682

ContextMenuStripに属するToolStripMenuItemをクリックしたときのイベントで、
ContextMenuStripのSourceControlを参照すると、Nothingになっています。
こちらが期待したのは、ContextMenuStripのSourceControlに、
これを開くために右クリックしたTextBoxが設定されるというものなのですが、
なぜNothingになっているのでしょうか?
使用しているVBは2008です。
引用返信 編集キー/
■50038 / inTopicNo.2)  Re[1]: ContextMenuStrip.SourceControl
□投稿者/ Hongliang (639回)-(2010/05/26(Wed) 23:49:43)
// む、調査不足でしたね。
http://www.tech-archive.net/Archive/DotNet/microsoft.public.dotnet.languages.csharp/2008-04/msg03818.html
サブメニュー以下の場合常に null になるというバグのようです。.NET 4 でも直ってないみたいですね。
回避策として、ContextMenuStrip の Opening イベントで SourceControl を確保しておく方法が提案されています。
引用返信 編集キー/
■50039 / inTopicNo.3)  Re[2]: ContextMenuStrip.SourceControl
□投稿者/ プリンEX (2回)-(2010/05/26(Wed) 23:55:37)
No50038 (Hongliang さん) に返信
> 回避策として、ContextMenuStrip の Opening イベントで SourceControl を確保しておく方法が提案されています。

おお、ContextMenuStripのOpeningイベントでは、ContextMenuStrip.SourceControlが取得できました。
これをForm内のPrivate変数に格納することにします。
Hongliang さん、ありがとうございました。
この回避策で解決とさせていただきます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -