- - PR -
C# ComboBoxのドロップダウンリストを常に下向きに垂れ下がるようにする方法
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-07-11 20:30
デフォルトではスクリーンのComboBoxの位置によってドロップダウンリストが
跳ね上がったり垂れさがったりします。複数のComboBoxが縦に並んでいる場合、 ComboBoxによって動作が異なり煩わしく感じる場合があります。 どの位置のComboBoxも常時下に垂れさがるようにすることができますか? | ||||||||||||
|
投稿日時: 2007-07-11 23:35
どこがどう煩わしいのでしょうか? たとえば、ドロップダウンした時に見えなくなる領域があると Windows の ComboBox はそのように表示されます。 これがなされない方が煩わしいと考えます。 どうしてもと仰るのであれば、WndProc にて WM_CTLCOLORLISTBOX を捕捉して、ドロップダウン位置を固定にすればお望みのものができると思います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-07-12 07:33
2年くらい前、デスクトップ座標で表示されている位置によって、ドロップダウンリストに表示される個数を変えたい、という質問があったような。
じゃんぬさんがおっしゃるように、リストが隠れるようだと上に表示されるので、反対に考えて、上に表示されないようにリストの個数を変えるとか。 ただ、1アイテムも表示されないような位置に移動されたときどうするか、は、考えておかなきゃね。 | ||||||||||||
|
投稿日時: 2007-07-12 08:13
言語を確認せずに作ったのでVBで書いてしまいましたが、 こんな感じでドロップダウンで表示するデフォルトの要素数を 可変にできるかと思います。 #朝から組んでみたのでテストは不十分 #一応、マルチスクリーンは考慮してみたつもり 後、このロジックをどこに入れるかが問題です。 WndProcで補足するしかないのかどうかは未検証。
こっちは考慮していません。 | ||||||||||||
|
投稿日時: 2007-07-12 17:05
ご回答ありがとうございます。
画面位置によってドロップダウンリストの要素数を調整することで解決できました。 | ||||||||||||
|
投稿日時: 2007-07-12 17:05
ご回答ありがとうございます。
画面位置によってドロップダウンリストの要素数を調整することで解決できました。 | ||||||||||||
|
投稿日時: 2007-07-12 20:00
ユーザがフォームを動かして、ひとつも表示できないような位置になった場合はどうするように対応されたのでしょう? 私は「考えなきゃダメよ」って書いたし、よねKENさんのコードは考慮されていないのですから、当然考えて実装しましたよね? 上下に分かれるのと、個数が変わるのと。ユーザにとってどっちが戸惑うだろう? 少なくとも、テスト工数が増えるから、積極的にやりなくないなぁ。 (コード書いた記憶があったんだけど、別の掲示板だったみたい。会議室ディレクトリから探したけど、見つけられなかった。) |
1