私はTreeNodesの束を持つTreeViewコントロールを持っています。各ノードContextMenuには、その状態に基づいて異なるMenuItemがあります。だから私は現在、各TreeNode独自のContextMenuを添付しています。コンテキストメニューが呼び出されたTreeNodeを取得するにはどうすればよいですか?
TreeView tv = new TreeView();
TreeNode tn = New TreeNode();
tn.ContextMenu = GetContextMenu(state);
tv.Nodes.Add(tn);
次に、MenuItemのクリックイベントで、ContextMenuが属するTreeNodeを取得しようとします。
MenuItem mi = (MenuItem)sender;
ContextMenu tm = mi.GetContextMenu();
var sc = tm.SourceControl;
問題はtm.SourceControl == null
です。私はTreeNode
がControl
から派生していないことに気づいた。それがSourceControl
プロパティがnullであるのはなぜですか?適切なTreeNodeオブジェクトを取得するにはどうすればよいですか?またはTreeViewオブジェクトですか?
は、あなたがこのStackOverflowの前のポストを見て見ることはできますが/ questions/2527/c-sharp-treeview-context-menus – MethodMan
これは助けになりました。私は私の検索でそれを見ませんでした。ありがとう。この質問で私は何をしますか? – scott