更改滚动条在面板上的移动量
Change amount scrollbar moves on a panel
我有一个包含许多子控件并启用了 Autoscroll
的面板。单击滚动条顶部或底部的箭头只会导致几个像素的微小移动:
是否可以控制移动量并将其设置为更大的值?使用 .NET Compact Framework。
编辑 1
在完整版的.NET中,可以直接访问VerticalScroll.SmallChange
和VerticalScroll.LargeChange
属性。但是这些在 Compact Framework 中是不可用的。那么问题是如何在Compact Framework中做到这一点?
编辑 2
通过查看面板的 AutoScrollPosition.Y
,我发现 SmallChange
参数设置为 5 像素。这必须是 Compact Framework 中 Panel
控件的默认值。对于我的触摸屏应用程序,这需要大约 70 像素。
经过大量研究,我得出的结论是,这在 Compact Framework 中根本不可能。此答案不适用于特定问题,而是改编自 this answer by Cyril Gupta
的出色解决方法
- 创建一个新的 "parent" 面板并将旧面板放在该父面板上
- 调整子项的大小,使父项的一小块区域可见。在此区域放置
Up
和 Down
按钮。
- 在子面板上禁用
AutoScroll
。
- 设置子面板的高度,使滚动条消失。请注意,当然并非所有控件都可见。
- 当在父面板上单击其中一个按钮时,更改子面板的
Top
属性。
效果很好!
我有一个包含许多子控件并启用了 Autoscroll
的面板。单击滚动条顶部或底部的箭头只会导致几个像素的微小移动:
是否可以控制移动量并将其设置为更大的值?使用 .NET Compact Framework。
编辑 1
在完整版的.NET中,可以直接访问VerticalScroll.SmallChange
和VerticalScroll.LargeChange
属性。但是这些在 Compact Framework 中是不可用的。那么问题是如何在Compact Framework中做到这一点?
编辑 2
通过查看面板的 AutoScrollPosition.Y
,我发现 SmallChange
参数设置为 5 像素。这必须是 Compact Framework 中 Panel
控件的默认值。对于我的触摸屏应用程序,这需要大约 70 像素。
经过大量研究,我得出的结论是,这在 Compact Framework 中根本不可能。此答案不适用于特定问题,而是改编自 this answer by Cyril Gupta
的出色解决方法- 创建一个新的 "parent" 面板并将旧面板放在该父面板上
- 调整子项的大小,使父项的一小块区域可见。在此区域放置
Up
和Down
按钮。 - 在子面板上禁用
AutoScroll
。 - 设置子面板的高度,使滚动条消失。请注意,当然并非所有控件都可见。
- 当在父面板上单击其中一个按钮时,更改子面板的
Top
属性。
效果很好!