gpt4 book ai didi

c# - 如何使 ComboBox Dropdown 向上绘制

转载 作者:行者123 更新时间:2023-11-30 22:24:21 25 4
gpt4 key购买 nike

在 Winform 中,我在表单底部有一个 ComboBox。当我运行该应用程序时,ComboBox 会向下绘制超出表单边界的下拉列表。

如何使 ComboBox 下拉列表向上绘制?

提前致谢。

最佳答案

这不是立竿见影的,但你可以做到,我将概述你需要的步骤:

  • 将事件处理程序附加到 ComboBox.DropDown
  • ComboBox 的 Left/Bottom 位置转换为屏幕坐标,并为它们添加一个偏移量(例如,两个值都为 +1)。
  • 使用 WindowFromPoint() 获取下拉窗口的句柄(它在控件下方,这就是 +1 的原因)。
  • 获取放置窗口的边界(您可以根据需要使用 CB_GETDROPPEDCONTROLRECTGetWindowRect())。
  • 使用 MoveWindow() 将窗口移动到新位置(ComboBox 顶部 - 下拉窗口高度)。

就这样

编辑
请注意,您可以合并第 2 点和第 4 点,使用带有 CB_GETDROPPEDCONTROLRECT 的单个 SendMessage,您可以获得该窗口的边界和用作 WindowFromPoint 参数的位置()。这样你就不会断言下拉窗口总是向下的(不确定窗口何时触及屏幕边界,甚至可能在未来的版本中改变)。

关于c# - 如何使 ComboBox Dropdown 向上绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12816650/

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