gpt4 book ai didi

c# - WinForms:如何使用 AutoScroll 避免水平滚动条?

转载 作者:行者123 更新时间:2023-11-30 15:45:27 50 4
gpt4 key购买 nike

我正在编写一个自定义控件,其中包含一个项目列表(子控件),可以水平调整大小以适应控件的宽度。如果有很多项目(或者调整了控件的大小,使得它在垂直方向上不够高),那么垂直滚动条是必要的;但是当出现垂直滚动条时,子控件突然变宽,导致出现水平滚动条。

考虑到我手动控制控件位置(不依赖于 AnchorStyles),确保水平滚动条在不必要时不出现的正确方法是什么? (注意:我无法手动控制 VScroll 属性,因为我使用的是 Compact Framework;如果项目的最小宽度比客户区宽,则合法地需要水平滚动条。)

最佳答案

我在类似情况下所做的是,每次向列表添加项目后,我都会检测滚动条是否可见并手动调整宽度。

我检测滚动条是否显示的方法是:

  1. 测试 WS_VSCROLL通过 P/Invoke 通过 GetWindowLong() 在控件上设置.
  2. 扫描垂直滚动条控件的子控件。

到底哪个才是正确的,要看控件是如何处理滚动条的。

另外这是在 Windows 上,而不是在 CF 上,所以我不确定这是否会以完全相同的方式工作。

关于c# - WinForms:如何使用 AutoScroll 避免水平滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5197984/

50 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com