【发布时间】:2011-12-16 14:15:26
【问题描述】:
我有一个带有一堆 TreeNode 的 TreeView 控件。每个节点 ContextMenu 根据其状态具有不同的 MenuItem。所以我目前正在为每个 TreeNode 附加它自己的 ContextMenu。
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 属性为空的原因吗?如何获得合适的 TreeNode 对象?甚至是 TreeView 对象?
【问题讨论】:
-
你能看看这个 StackOverFlow 之前的帖子,看看它是否有帮助 stackoverflow.com/questions/2527/c-sharp-treeview-context-menus
-
这有帮助。我在搜索中没有看到这一点。谢谢。这个问题我该怎么办?
标签: c# winforms contextmenu treenode