Mat*_*del 6 .net c# resize autoscroll
我正在.net中编写一个应用程序,它在对话框中使用autoscroll作为布局面板.似乎每当我调整窗口大小以便显示垂直滚动条时,水平滚动条也会自动出现.仔细观察它,第二个滚动条现在允许我将窗口滚动16个像素(另一个滚动条的宽度).所以Windows似乎认为我需要一个至少与垂直滚动条出现之前一样宽的客户区.
如果我现在将窗口调整为宽16像素(这样我的窗口区域就像滚动条出现之前一样宽),滚动条就会消失.现在,如果我将它重新调整到原来的状态,它就会消失.
所以在我看来,系统中存在一个错误,其中最小宽度有点粘,但是升级和缩小窗口(使用鼠标,而不调整滚动条相关的API)可以清除条件
有人知道一个解决方法,或者我正在做什么来绊倒Windows?
是的,我认为你已经正确地诊断出了这个问题.这是一个令人讨厌的副作用,例如,垂直滚动条出现并需要空间,使可用的客户区域更小.太小而不适合控件,现在也会出现水平滚动条.它实际上是双稳态的,在某些情况下,水平条可以闪烁.
为了避免这种影响,布局引擎必须在布局中进行多次传递,以处理不断变化的客户区域.然而它只通过一次.这听起来很明智,这可能是一个永无止境的循环.我不知道对此有什么好处.您的用户可能只是调整窗口大小足以删除至少一个滚动条.
我没有确切地注意到您所描述的行为,但遇到了垂直滚动条的外观使得水平滚动条成为必要的情况。
您可以设置面板的内容以允许滚动条的宽度,例如,如果我ListBox在 a 中有 a Panel:
listBox1.Width = panel2.Width - System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
Run Code Online (Sandbox Code Playgroud)
华泰
| 归档时间: |
|
| 查看次数: |
12563 次 |
| 最近记录: |