在 Winform 中,我在表单底部有一个 ComboBox。当我运行应用程序时,ComboBox 会向下绘制下拉列表,该下拉列表超出了表单边框。
我怎样才能使组合框下拉列表向上绘制?
提前致谢。
这不是立即的,但您可以做到,我将概述您需要的步骤:
ComboBox.DropDown
.ComboBox
为屏幕坐标并将它们添加一个偏移量(例如,两个值都为 +1)。WindowFromPoint()
来获取下拉窗口的句柄(它在控件下方,这就是 +1 的原因)。CB_GETDROPPEDCONTROLRECT
或GetWindowRect()
,根据您的喜好)。ComboBox
从上到下的窗口高度)MoveWindow()
。就这样
编辑
请注意,您可以合并第 2 点和第 4 点,SendMessage
与CB_GETDROPPEDCONTROLRECT
您可以得到该窗口的边界和用作参数的位置WindowFromPoint()
。通过这种方式,您不会断言下拉窗口始终是向下的(不确定窗口何时接触屏幕边界,甚至可能在未来的版本中发生变化)。