如何使 SplitContainers 中的 ListBoxes 正确调整大小?
How to make ListBoxes in SplitContainers resize properly?
要重现此问题,
- 创建一个新的 WinForms 项目
- 使用 WinForms 设计器,添加
SplitContainer
- 将其方向设置为水平
- 将其停靠栏设置为填充
- 在
SplitContainer
的每个容器中,添加一个ListBox
- 将其停靠栏设置为填充
- 增大其字体大小,以便可以更清楚地观察到相关行为
- 向列表框中添加一些项目
完成这些步骤后,设计器应如下所示:
- 现在运行程序
- 调整
SplitContainer
中容器的大小
您应该看到,对于某些尺寸的上层容器,两个列表框之间会有一个 space(对不起,我的鼠标书写不好)。
对于其他尺寸的上容器,几乎没有space。
我假设这是因为列表框无法显示 "half an item" 所以它减小了它的大小以不显示项目的一半。这是真的吗?
我想到了以下解决方案:
限制拆分容器的可调整大小,以便用户只能在 "steps" 中调整大小,其中每一步等于列表框中一项的高度。
但是,我不太喜欢这样,因为当项目高度很大时,用户体验感觉不自然(至少对我而言)。
我怎样才能使列表框正确调整大小(即不留空隙)?
您可以将IntegralHeight
属性设置为false
来达到想要的效果。
https://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.integralheight(v=vs.110).aspx
Gets or sets a value indicating whether the control should resize to avoid showing partial items.
要重现此问题,
- 创建一个新的 WinForms 项目
- 使用 WinForms 设计器,添加
SplitContainer
- 将其方向设置为水平
- 将其停靠栏设置为填充
- 在
SplitContainer
的每个容器中,添加一个ListBox
- 将其停靠栏设置为填充
- 增大其字体大小,以便可以更清楚地观察到相关行为
- 向列表框中添加一些项目
完成这些步骤后,设计器应如下所示:
- 现在运行程序
- 调整
SplitContainer
中容器的大小
您应该看到,对于某些尺寸的上层容器,两个列表框之间会有一个 space(对不起,我的鼠标书写不好)。
对于其他尺寸的上容器,几乎没有space。
我假设这是因为列表框无法显示 "half an item" 所以它减小了它的大小以不显示项目的一半。这是真的吗?
我想到了以下解决方案:
限制拆分容器的可调整大小,以便用户只能在 "steps" 中调整大小,其中每一步等于列表框中一项的高度。
但是,我不太喜欢这样,因为当项目高度很大时,用户体验感觉不自然(至少对我而言)。
我怎样才能使列表框正确调整大小(即不留空隙)?
您可以将IntegralHeight
属性设置为false
来达到想要的效果。
https://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.integralheight(v=vs.110).aspx
Gets or sets a value indicating whether the control should resize to avoid showing partial items.