C#关于TreeView双击事件问题(我想只能双击叶子才有双击事件产生)
第一个问题:怎么才能只让叶节点才有双击事件产生(或者我只让第三级节点产生双击事件,因为我的树是个好友列表,第一级是“通讯簿”,第二级是好友分组,第三级才是很多好友,我只希...
第一个问题:怎么才能只让叶节点才有双击事件产生(或者我只让第三级节点产生双击事件,因为我的树是个好友列表,第一级是“通讯簿”,第二级是好友分组,第三级才是很多好友,我只希望用户可以随意点击任何一个好友然后就可以产生聊天窗口,但是第二级只有个修改分组名的操作)
第二个问题:拖拽,要求是可以随意拖拽第三级也就是叶子到其他的二级node下,也就是说好友可以随意拖拽到任何一个分组,然后这个分组的其他叶子下移。
第三个问题:每次拖拽完之后产生一个什么让我记录一下这个操作(因为我是从数据库取出来的数据,所以希望能保存)
第四个问题:(不那么重要,因为不知道前几个问题的工作量,如果有人能帮我实现前几个问题分就送上了,不过如果觉得这个问题顺便也能完成我将再加50分)给我添加一个TreeView空白处的右键菜单,显示添加和删除叶节点,如果二级节点下面没有三级节点,则可以删除此二级节点。
谢谢了各位,这个问题好多! 展开
第二个问题:拖拽,要求是可以随意拖拽第三级也就是叶子到其他的二级node下,也就是说好友可以随意拖拽到任何一个分组,然后这个分组的其他叶子下移。
第三个问题:每次拖拽完之后产生一个什么让我记录一下这个操作(因为我是从数据库取出来的数据,所以希望能保存)
第四个问题:(不那么重要,因为不知道前几个问题的工作量,如果有人能帮我实现前几个问题分就送上了,不过如果觉得这个问题顺便也能完成我将再加50分)给我添加一个TreeView空白处的右键菜单,显示添加和删除叶节点,如果二级节点下面没有三级节点,则可以删除此二级节点。
谢谢了各位,这个问题好多! 展开
4个回答
展开全部
1、通过判断节点的Level可以针对某一级节点进行特定操作,这是个int值,从0开始的;
2、节点拖拽这个有很多例子,你可以看一下这个:
http://www.cnblogs.com/chlyzone/archive/2011/04/22/2025072.html
3、参考第二个问题,在拖拽完成后节点的Group值就发生了变化,所以更新这个值并写到数据库就可以了;
4、添加一个右键菜单,参考第一个问题,通过节点的Level来控制右键菜单中添加、删除节点等菜单项是否可用。
希望对你有帮助,还有疑问请追问或是Hi
2、节点拖拽这个有很多例子,你可以看一下这个:
http://www.cnblogs.com/chlyzone/archive/2011/04/22/2025072.html
3、参考第二个问题,在拖拽完成后节点的Group值就发生了变化,所以更新这个值并写到数据库就可以了;
4、添加一个右键菜单,参考第一个问题,通过节点的Level来控制右键菜单中添加、删除节点等菜单项是否可用。
希望对你有帮助,还有疑问请追问或是Hi
更多追问追答
追问
恩恩,等的就是您,太好了,我去尝试下
追答
写了个示例,实现了以下功能:
1、双击节点时,只有好友节点才会弹出一个窗口,窗口标题显示出好友名称;
2、右键点击节点时,通讯簿节点只有“添加分组”菜单有效;当分组节点的子节点为零时,“删除分组”和“添加好友”菜单有效,不为零时只有“添加好友”菜单有效;好友节点只有“删除好友”菜单有效;
3、指定鼠标左键只能拖拽好友节点,并且限制只能拖拽到分组节点上,完成后节点添加到同级节点末尾处,如需更改插入位置请改动事件中的index值;
4、拖拽完成后节点数据的分组属性被更改,为便于看到效果,窗体右侧添加了一个DataGridView控件,显示所有数据,在拖拽完成后可清楚地看到Group属性的变化,稍加修改就是更新数据库记录的操作了;
展开全部
我记得曾经做过这个,不过好久没用c#了,可以给你点参考
1、双击事件区别可以利用节点的不同特性,treeview里每一级节点应该有特殊的属性区分吧,或者想办法做出每级节点特殊的属性来在事件中区分双击后点击的是哪一级
2、拖拽这个肯定是可以实现,我记得是有一个拖拽的事件,具体你可以再查查别人做的例子,至于节点下移应该是数据变更后刷新控件的效果吧
3、同上,找到那个事件每次保存一下就好
4、这个右键菜单在C#中也有现成的控件吧,具体设置好items写方法就好了吧
http://blog.csdn.net/lvfeng19806001/article/details/5850230
1、双击事件区别可以利用节点的不同特性,treeview里每一级节点应该有特殊的属性区分吧,或者想办法做出每级节点特殊的属性来在事件中区分双击后点击的是哪一级
2、拖拽这个肯定是可以实现,我记得是有一个拖拽的事件,具体你可以再查查别人做的例子,至于节点下移应该是数据变更后刷新控件的效果吧
3、同上,找到那个事件每次保存一下就好
4、这个右键菜单在C#中也有现成的控件吧,具体设置好items写方法就好了吧
http://blog.csdn.net/lvfeng19806001/article/details/5850230
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看这个自定义的Treeview吧,超级强大,可编辑拖动,等等,自己去下载源码。
http://sourceforge.net/projects/treeviewadv/?source=directory
http://sourceforge.net/projects/treeviewadv/?source=directory
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的问题重点就在于操作深度为2的节点,只要在双击的时候,如果深度不是2就return,同样拖拽是一样的道理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询