我的任务是创建一个包含ListView和ComboBox的UserControl,用于对ListView数据进行排序。使用Combobox进行排序很容易;我遇到困难的部分是实现滚动方法。最后,控件应该具有类似Excel的感觉。但是,有时ListView太高或太宽,无法放置它。因此,控件上有两个滚动条。一个只垂直移动ListView,另一个水平移动ListView和ComboBox过滤器。
请注意,在上图中,ComboBox会根据列宽调整自己,但目前尚未启用该代码。
我尝试了什么:在控件中,过滤器框位于各自的面板中,而ListView有时会有自己的面板。我尝试过对所有控件使用HScroll / VScroll和HorizontalScroll / VerticalScroll属性以及本机函数ShowScrollBar()的各种组合,但没有任何效果。我出现滚动条的唯一方法是将设置AutoScroll(ListView的Scrollable)设置为true。当然,滚动条成对出现并且仅在同一控件上工作。我还试图以编程方式移动滚动条,但我也无法实现这一点。
我必须做错事,但我不确定它是什么。任何帮助表示赞赏!
答案 0 :(得分:0)
我想我会选择不同的解决方案。
如果您将ComboBoxes
放在与AutoSrcoll
相同Anchors
的{{1}}面板中,您可以自由地独立滚动这两个ListView
。
是的,ScrollBar
会出现并占用空间,但我仍然乐意把它作为一个功能出售,而不是一个bug ;-)
至于处理Scroll
的{{1}}事件:它是隐藏的,您必须将其子类化才能访问它。见here