winform treeview单击打开子节点问题请教

张家可 2011-05-17 09:10:36
大家都知道,winform treeview默认是鼠标双击节点就展开和折叠子节点的,或是点旁边的“+”号也一样的展开和折叠子节点。

现在的问题是我想鼠标单击treeview节点就实现展开和折叠子节点,我在treeView1_NodeMouseClick事件里这样写下:
if (e.Node.IsExpanded)
e.Node.Collapse();
else
e.Node.Expand();

发现单击节点就展开和折叠子节点是实现了,
但是地去点旁边的“+”号还是不行,那个“+”号好像还是双击的功能,
点一下就马上展开又马上折叠,
我要的是单击“+”号,也是和单击节点一样,
点一下就展开,再点一下就折叠。。。。

不知道大家明白我的意思没有,请教高手帮帮忙哦~_~
...全文
568 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
然鸟 2012-06-20
  • 打赏
  • 举报
回复
这方法不错,谢谢6楼!
likely1105 2011-05-26
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 qqamoon 的回复:]
if (e.Node.Bounds.Contains(e.Location))
[/Quote]
刚好用到~~
谢谢~~
mills_ 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qqamoon 的回复:]
C# code

if (e.Node.Bounds.Contains(e.Location))
{
if (e.Node.IsExpanded)
{
e.Node.Collapse();
}
else
{
e.Node.Expand();
}
}
[/Quote]

这个不错!
不过我还是想知道点击加号执行的是什么事件!
龍过鸡年 2011-05-17
  • 打赏
  • 举报
回复

if (e.Node.Bounds.Contains(e.Location))
{
if (e.Node.IsExpanded)
{
e.Node.Collapse();
}
else
{
e.Node.Expand();
}
}
张家可 2011-05-17
  • 打赏
  • 举报
回复
唉。有没有人知道啊。。。等待中。。。
让爱延续 2011-05-17
  • 打赏
  • 举报
回复
额,哈哈, 我不语。。。
张家可 2011-05-17
  • 打赏
  • 举报
回复
因为有“+”号我就可以清楚的知道有没有下一级内容
如果把
treeView1的ShowPulsMinus属性为false
那么不管有没有下级内容,都不知道,一定要去点击它才能知道
张家可 2011-05-17
  • 打赏
  • 举报
回复
楼主可以试试这样行不行:设置treeView1的ShowPulsMinus属性为false

你好,我就是要把旁边的“+”号显示出来哦。
所以你说的还是不能实现我想要的
雪饮 2011-05-17
  • 打赏
  • 举报
回复
楼主的问题在于:
当你点击旁边的 + 号的时候 一样会执行 treeView1_NodeMouseClick 这个事件,当你点击的时候,节点先展开,然后执行
if (e.Node.IsExpanded)
e.Node.Collapse();
else
e.Node.Expand();
这个代码,你先判断它是否展开,展开的话就把它折叠……接下来不用我说了吧

楼主可以试试这样行不行:设置treeView1的ShowPulsMinus属性为false
龍过鸡年 2011-05-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 llxlett 的回复:]

谢谢6楼的,哈,
……
我也想知道7楼的问题,
点击加号执行的是什么事件?
一直不知道这个
[/Quote]

AfterExpand
AfterCollapse

BeforeExpand
BeforeCollapse
张家可 2011-05-17
  • 打赏
  • 举报
回复
谢谢6楼的,哈,
……
我也想知道7楼的问题,
点击加号执行的是什么事件?
一直不知道这个

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧