3
我有一堆TreeNodes的TreeView控件。每个节点ContextMenu根据其状态具有不同的MenuItem。所以我现在将每个TreeNode连接到它自己的ContextMenu。如何获取调用上下文菜单的TreeNode?
TreeView tv = new TreeView();
TreeNode tn = New TreeNode();
tn.ContextMenu = GetContextMenu(state);
tv.Nodes.Add(tn);
然后在MenuItem的click事件中,我尝试获取ContextMenu所属的TreeNode。
MenuItem mi = (MenuItem)sender;
ContextMenu tm = mi.GetContextMenu();
var sc = tm.SourceControl;
问题是,tm.SourceControl == null
。我注意到TreeNode
不是从Control
派生。这就是为什么SourceControl
属性为空?我如何获得适当的TreeNode对象?甚至是TreeView对象?
你可以看看这个计算器之前后,看看它是否有助于http://stackoverflow.com/questions/2527/c-sharp-treeview-context-menus – MethodMan 2011-12-16 14:20:54
这有帮助。我没有在我的搜索中看到。谢谢。我该怎么处理这个问题? – scott 2011-12-16 14:25:32