DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ドロップダウンリストを上方向に開くには?

環境/言語:[C#]
分類:[.NET]

【解決したい問題】

コンボボックスのドロップダウンリストを上方向に開くにはどうすればよいのでしょうか。
T_Gさん、こんにちは。

> コンボボックスのドロップダウンリストを上方向に開くにはどうすればよいのでしょうか。

通常のコンボボックスでは、リスト内容が画面よりはみ出る場合のみ上部に表示されます。また、上部に表示させる為のプロパティやメソッドは私の確認した限りでは無いので、オリジナルコンボボックスを作るのが手っ取り早いかもしれませんね。
■No18948に返信(T_Gさんの記事)
> コンボボックスのドロップダウンリストを上方向に開くにはどうすればよいのでしょうか。

ご質問は、Windows アプリケーションと考えてよろしいでしょうか?

System.Windows.Forms.ComboBox クラスを継承したクラスにて、WndProc をオーバーライドします。
あとは、WM_CTLCOLORLISTBOX を捕捉して、位置を自前で指定すれば良いです。

ただ、常に上方向に開くというのは、ウィンドウの位置によっては、ユーザービリティを損ねるのでお勧めしません。
表示できる場合のみ上方向へ展開するように制御しましょう。
> ただ、常に上方向に開くというのは、ウィンドウの位置によっては、ユーザービリティを損ねるのでお勧めしません。

横のボタンが、なぜ、▲ではなく、▼なのか。
この世に下から上へ読む文化が無い(あったらごめん)、つまり人間工学的によくないということになりますかね。
■No18957に返信(まどかさんの記事)
> 横のボタンが、なぜ、▲ではなく、▼なのか。
> この世に下から上へ読む文化が無い(あったらごめん)、つまり人間工学的によくないということになりますかね。

いや、そのあたりはあまり関係ないと思いますよ。
実際、Windows は展開位置が動的に変わります。
■No18948に返信(T_Gさんの記事)
> 【解決したい問題】
>
> コンボボックスのドロップダウンリストを上方向に開くにはどうすればよいのでしょうか。

T_Gです。ぺがらぼさん、じゃんぬねっとさん、色々教えていただき、ありがとうございました。教えていただいたことを参考に、ネット上を検索したところ、
拡張 ComboBox の作成http://www.microsoft.com/japan/msdn/net/winforms/bettercombobox.aspx
という記事を見つけました。(じゃんぬねっとさんの書かれていたことが具体的に説明されていました。)この線で挑戦してみたいと思っています。

なお私はこのサイトのリンクページのソフトウェア>インターネット・通信 に載せてもらっている、Amazon J Explorerというソフトのバージョンアップ中なのですが、どうしても上に開くコンボボックスが必要なのです。(下に開くと下にある、自作のタブオープンボックス(?)と干渉するのです。)
解決済み!
■No18960に返信(T_Gさんの記事)
> なお私はこのサイトのリンクページのソフトウェア>インターネット・通信 に載せてもらっている、Amazon J Explorerというソフトのバージョンアップ中なのですが、
> どうしても上に開くコンボボックスが必要なのです。(下に開くと下にある、自作のタブオープンボックス(?)と干渉するのです。)

それは、画面設計上の問題なので、それ以外の部分で解決するというは上策ではないです。
解決済み!
■No18961に返信(じゃんぬねっとさんの記事)
> それは、画面設計上の問題なので、それ以外の部分で解決するというは上策ではないです。
じゃんぬねっとさん貴重な御意見色々ありがとうございます。
もう一度考え直してみます。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板