以下是此问题的屏幕截图。我用了
SendMessage(find, CB_SETHORIZONTALEXTENT, (WPARAM)200, 0);
为下拉组合框创建水平滚动。但它在底部给出了一个空行。请问如何解决这个问题。
答案 0 :(得分:0)
我知道问这个问题已经有2年了,但是如果其他人遇到这个问题(就像我做的那样),我就是这样解决的:
最后的空间是由DropDownHeight
属性的错误计算引起的,该属性的默认值取决于ItemHeight
(取决于Font
)和MaxDropDownItems
。
因此,如果您手动添加水平滚动条(就像我一样,通过添加WS_HSCROLL样式),您需要重新计算DropDownHeight
,如下所示:
DropDownHeight = SystemInformation.HorizontalScrollBarHeight
+ 2 + ItemHeight * MaxDropDownItems;
其中2
用于边框。
修改
考虑系统的边界以获得更广泛的适用性......
DropDownHeight = ItemHeight * MaxDropDownItems
+ SystemInformation.HorizontalScrollBarHeight
+ 2 * SystemInformation.BorderSize.Height;