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

ComboBoxのText表示部について

環境/言語:[C# 2005/Windows XP Pro]
分類:[.NET]

いつもお世話になっております。

今回お聞きしたいのは、ComboBoxのText表示部についてです。

通常ですとDisplayMemberに設定されたものが、リスト上に表示され、
リストから選択したものが、Text上に表示されると思うのですが、
DisplayMemberに設定されている以外の物を表示させたいのですが、
実現方法として、どのような方法が考えられるでしょうか?

現状では、DisplayMemberを「リスト表示用」「テキスト表示用」と
用意しておき、DisplayMemberを、ComboBoxのリストが表示された
瞬間に、DisplayMemberを切り替える方法であれば、多少思惑どおりに
動くのですが、表示内容を切り替える瞬間に、リスト内容の再描画が
走り、項目がちらつきます。
また、Textに表示している内容が、リスト表示項目に切り替わってしまいます。

何か良い方法は無いでしょうか?

発想を変えて、リスト内容を自前で描画する方法でいけるのではとも
思っていますが、こちらについては、現在まだ試しておりません。
(発想自体はあっても、やり方が今現在不明です。どっかで見た気も
するのですが・・・)

何か良い知恵がおありの方がいらっしゃいましたら、
ご意見を聞かせていただければ、大変助かります。

よろしくお願いいたします。

以上
リストボックスの内容を自前で描画する方法で解決しました。
カスタムコントロールの作成をして、OnDrawItemをoverrideして、
コンストラクタ内で、固定で描画モードを指定してあげれば出来ました。
base.DrawMode = DrawMode.OwnerDrawFixed;

参考にしたのは、下記のHPですというか、こちらのHP内にありました。
http://dobon.net/vb/dotnet/control/cbownerdraw.html

かゆいところに手が届きました。
本当にありがとうございました。

カスタムコントロールで作らなければならなかったので、多少心配しましたが
ほぼ同じ内容でいけました。

本当に感謝です。

以上
解決済み!

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