none
请教VS2008中TreeView控件的问题 RRS feed

  • 问题

  • 大家好  我是个编程新手 最近在学C#
    在这里想请教下 VS2008中C# 的TreeView控件中 如果节点过多  如何触发TreeView的VScrollBar事件。。。。
    小弟想做个测试,就是首先先获得一个节点坐标, 然后通过拖动VScrollBar获得变化后的Node坐标。
    2010年3月4日 15:36

答案

  • 你好!

    如果你只是想显示某个 Node 调用它的 EnsureVisible 就可以了。

    知识改变命运,奋斗成就人生!
    2010年3月5日 1:30
    版主
  • 你好!
         TreeView并没有提供滚动事件,如果你想使用代码来自动滚动这个控件,可以尝试XXY版主的方法,另外,WinForm下的控件对滚动的支持都比较有限!
    周雪峰
    2010年3月5日 4:40
    版主
  • 知道你的意思了,感觉就像access等在拖两个表之间对应外键的时候的样子,这里的list里的一个元素对应那里一个list的元素,然后中间画条线上去表示对应

    建议在treeview右边放个vscroll,覆盖掉原来treeview自己的滚动条,这个就有事件了,然后设法跟treeview连动就行了

    霸王
    2010年3月5日 12:31

全部回复

  • 你好!

    如果你只是想显示某个 Node 调用它的 EnsureVisible 就可以了。

    知识改变命运,奋斗成就人生!
    2010年3月5日 1:30
    版主
  • 先谢谢你的回答。。。。。。我是新手,可能对很多东西都描述不清。。。。。
    我是想通过拖动滚动条后,显示NODE位置变化后的当前坐标。
    因为我现在正在做一个两树之间画线的程序。。。。现在线已经画出来了,但是拖动滚动条后 节点位置改变了,线却还在原来的地方。
    但是我在TREEVIEW里又找不到滚动条事件,,,,,所以不知道该怎么处理节点变化。

    2010年3月5日 4:36
  • 你好!
         TreeView并没有提供滚动事件,如果你想使用代码来自动滚动这个控件,可以尝试XXY版主的方法,另外,WinForm下的控件对滚动的支持都比较有限!
    周雪峰
    2010年3月5日 4:40
    版主
  • 知道你的意思了,感觉就像access等在拖两个表之间对应外键的时候的样子,这里的list里的一个元素对应那里一个list的元素,然后中间画条线上去表示对应

    建议在treeview右边放个vscroll,覆盖掉原来treeview自己的滚动条,这个就有事件了,然后设法跟treeview连动就行了

    霸王
    2010年3月5日 12:31
  • 先谢谢各位热心的帮助了 其实我也想到要用VSCROLLBAR来覆盖掉TREEVIEW中的滚动条了 只是我只想知道TREEVIEW本身是否能触发滚动事件 看来我又要去学习怎么将VSCROLLBAR与控件联动了 谢谢各位的帮助了 以后有问题再来继续打扰各位了 呵呵
    2010年3月8日 1:02