Code Bye

C# WinForm 怎么给控件添加滚动条事件

本人是想在 TreeView 拉动滚动条或点击滚动条上下小按钮时触发事件。
它本身是没有这个事件的,本人想过在鼠标事件中来判断滚动条能否变动,但是当鼠标在滚动条上操作时既不触发控件的鼠标单击事件也不触发窗体的鼠标单击事件所以无从下手。
具体有两个一模一样的treeView,本人在左边的操作实时对应到右边,鼠标单击通过sendMessage解决了,鼠标滚轮也通过sendMessage解决了,就差这个滚动条。
有其他办法也行。
解决方案

5


这个思路是对的,但每个控件的这个消息值是不一至。所以只能自结贴了。

5

本人的想法是别用  TreeView 自带的滚动条 ,在外面放一个或在父级Panel上放一个。滚动条事件怎么写都行。

5

引用:

本人的想法是别用  TreeView 自带的滚动条 ,在外面放一个或在父级Panel上放一个。滚动条事件怎么写都行。

不起做用的。Panel 也有滚动条的。你把他的AutoScroll设成true就有了。你要查的是Panel的滚动条的消息值是多少
你可以用DEBUG跟踪就能跟踪的出来了。点一下那两个小按钮就输出值是多少就知了

5

引用:

不起做用的。Panel 也有滚动条的。你把他的AutoScroll设成true就有了。你要查的是Panel的滚动条的消息值是多少
你可以用DEBUG跟踪就能跟踪的出来了。点一下那两个小按钮就输出值是多少就知了

触发滚动条的滚动事件,就不能用TreeView自带的滚动条,采用父级Panel或外面放置滚动条,关键是计算出TreeView内容的实际高度。这个好算,遍历一下展开节点就可以了。
让TreeView的高度 时刻等于 TreeView内容的实际高度, 假如采用外面放置滚动条就控制TreeView的Top值


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C# WinForm 怎么给控件添加滚动条事件