掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB.netで複数列コンボボックスを表示するには? (ID:80326)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
System.Windows.Forms.ComboBox 自体には、複数列を表示させる機能はありません。そこで、自分でそのような機能を作りこむ事になります。 http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200309/03090008.txt 上記にて回答した方法は、DrawItemイベントを使って、「オーナードロー」を行うという物です。オーナードローとは、項目の描画処理を Windows にやらせるのではなく(通常は、Windows が描画処理を行ってくれます)、替わりに、プログラム側(オーナー)で独自に行うことを言います。 プログラムで独自の描画処理を記述していますので、複数列のテキストを描画したり、背景色やフォントを変更して描画したりする事もできるわけです。 ComboBox.DrawMode プロパティを Normal以外の値に変更すると、ドロップダウン時に、DrawItem イベントが発生するようになります。つまり、標準のドロップダウンリストを Windows に表示させる替わりに、プログラマが自分で、(GDI+ を使って)独自に描画してしまおうという事です。 オーナードローの使い方は、.NET技術者向けサイトでも、良く取り上げられていますので、それらを参考にして見ては如何でしょうか。 http://www.mitene.or.jp/~sugisita/family/papa/vb/net/net0011.html http://www.mitene.or.jp/~sugisita/family/papa/vb/net/net0012.html http://santamartaofthepeace.hp.infoseek.co.jp/vbdotnet/menuitemownerdraw.html http://santamartaofthepeace.hp.infoseek.co.jp/vbdotnet/ownerdraw.html > 出来れば、列の表示幅を設定可能で。 頑張って、ご自身の力で実装してみてください。 うまく表示できるものができたら、ComboBoxクラスを継承した専用のコントロールにしてあげると、再利用しやすくなりますよ。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.