2
在Winform中,我在窗體底部有一個ComboBox。 當我運行應用程序時,ComboBox在向下的方向繪製下拉列表,從窗體邊框出來。如何使ComboBox下拉菜單向上繪製
我怎樣才能使ComboBox下拉列表繪製向上?
在此先感謝。
在Winform中,我在窗體底部有一個ComboBox。 當我運行應用程序時,ComboBox在向下的方向繪製下拉列表,從窗體邊框出來。如何使ComboBox下拉菜單向上繪製
我怎樣才能使ComboBox下拉列表繪製向上?
在此先感謝。
這不是直接的,但你可以做到這一點,我就勾勒出你所需要的步驟:
ComboBox.DropDown
。ComboBox
的左/底位置轉換爲屏幕座標,並將它們添加一個偏移量(例如對兩個值都+1)。WindowFromPoint()
來獲取下拉窗口的句柄(它低於控件,這就是爲什麼+1)。CB_GETDROPPEDCONTROLRECT
或GetWindowRect()
)。MoveWindow()
將窗口移動到新位置(ComboBox
頂部 - 下降的窗口高度)。這是所有
編輯
請注意,您可以用CB_GETDROPPEDCONTROLRECT
合併點2和4,具有單SendMessage
你可以得到窗口位置的範圍爲paameter用於WindowFromPoint()
。通過這種方式,您不會斷言下拉窗口總是向下(不確定窗口何時觸及屏幕邊界,甚至在未來版本中甚至可能會更改)。
如果您有任何示例代碼,可以請您發佈相同的鏈接。 –
@EthanHunt對不起,沒有示例代碼或代碼示例。基本上你必須使用DllImport函數(SendMessage,WindowFromPoint和MoveWindow),然後直接跟隨列表。 –