您的位置:程序门 -> .net技术 -> c#



请教一个[控件树]上控制右键菜单的一个问题。dotnet 1.1


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


请教一个[控件树]上控制右键菜单的一个问题。dotnet 1.1[已结贴,结贴人:hu_jun]
发表于:2007-01-16 00:16:51 楼主
我实现的这棵树假设有2个层次,

第一个层:机构集层次(一个装饰的层次,就这一个node){ "机构集层次 "}
第二个层:   机构集{大学,政府}


我现在设计了二个右键菜单
第一个关联机构集层次:新建机构集
第二个关联机构集:编辑机构集,删除机构集

我的解决方案是,每次在控件afterselected的事件里
判断这个是树的那个层次,如果是selected的是第一层,我就关联一个右键菜单,如果是第二个类似.

但是有那个这个事件判断有有个不好的界面友好性就是:
具体事例是:当我左键,点击了第一个层次(机构集层次),然后马上右键,点击第二个层次(假设是{大学}),它所获取的selectednode仍然是   { "机构集层次 "}。
有没有直接判断右键的事件啊?或者别的技巧啊?

我的目的就是,右键在相应的节点上弹出相应的右键菜单。
发表于:2007-01-16 07:52:131楼 得分:0
try
处理
oncontextmenu
事件
发表于:2007-01-16 15:56:292楼 得分:0
to:hdt(倦怠)  
能说清楚一点吗?
谢谢了!
发表于:2007-01-18 12:07:493楼 得分:0
我用的是windows   form控件数啊
发表于:2007-01-18 14:12:394楼 得分:0
to   :hu_jun(军)    
看不太明白阿
发表于:2007-01-18 14:38:015楼 得分:0
获取焦点在treenode上的节点
发表于:2007-01-18 14:38:496楼 得分:0
因为获取selectnode   会有一点界面不友好的问题.
发表于:2007-01-18 15:29:157楼 得分:0
问题已经解决了,一个回答朋友,就把分都给你.
解决方案:

在mousedown事件里判断是不是右键点击,
然后用
try
{
        treenode   node   =   treeview.getnodeat(e.x,e.y);
        ....
        this.tree.selectednode   =   node;
}
发表于:2007-01-18 16:05:408楼 得分:30
你这么写还是会有一点滞后(第一次点击空白处时,会有一点延迟)
可以这么写
if(treeview.getnodeat(e.x,e.y)!=null)
{}//选中
else
{}//未选中
发表于:2007-01-19 08:57:559楼 得分:0
恩.


快速检索

最新资讯
热门点击