Winform では、フォームの下部に ComboBox があります。アプリケーションを実行すると、ComboBox はドロップダウン リストを下方向に描画し、フォームの境界線からはみ出します。
ComboBox ドロップダウン リストを上方向に描画する方法を教えてください。
前もって感謝します。
すぐにはできませんが、実行できます。必要な手順の概要を説明します。
ComboBox.DropDown
ます。ComboBox
を画面座標に変換し、オフセットを追加します (たとえば、両方の値に +1)。WindowFromPoint()
して、ドロップダウン ウィンドウのハンドルを取得します (コントロールの下にあるため、+1 になります)。CB_GETDROPPEDCONTROLRECT
またはを使用できGetWindowRect()
ます)。ComboBox
一番上からドロップダウンしたウィンドウの高さ)に移動しMoveWindow()
ます。それで全部です
EDIT
ポイント2と4をマージできることに注意してくださいSendMessage
.1CB_GETDROPPEDCONTROLRECT
つで、そのウィンドウの境界と、のパラメータとして使用する場所を取得できますWindowFromPoint()
。この方法では、ドロップダウンされたウィンドウが常に下向きであると主張しません (ウィンドウがいつ画面境界に接触するかは不明であり、将来のバージョンでは変更される可能性さえあります)。