3.アイコン付の ComboBox を作成する(17_Cbo_03) (旧、SampleNo.178) |
1.アイコン付の ComboBox を作成する 2.上記の下準備 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 :使用コントロール・他:ComboBox1 / ImageList1 / 表示用の画像 : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.アイコン付の ComboBox を作成する |
VB6.0 には、ImageCombo があるので簡単に作成する事ができるのですが、VB2005 系の標準でサポートされているコンボボックスのリストには、イメージを表示することができません、従って、コンボボックスの項目を独自(オーナードロー)で描画しております。 Private Sub ComboBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ComboBox1.DrawItem e.DrawBackground() e.DrawFocusRectangle() Dim r As Rectangle = e.Bounds If ImageList1.Images.Count = Me.ComboBox1.Items.Count Then ImageList1.Draw(e.Graphics, r.Left, r.Top, e.Index) e.Graphics.DrawString(CStr(ComboBox1.Items(e.Index)), e.Font, _ New SolidBrush(e.ForeColor), r.Left + 10 + _ ImageList1.Images(e.Index).Width, r.Top) End If End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.ComboBox1.DrawMode = DrawMode.OwnerDrawFixed With Me.ComboBox1 .Items.Add("イカ") .Items.Add("イクラ") .Items.Add("エビ") .Items.Add("たこ") .Items.Add("たまご") .Items.Add("鉄火巻き") .Items.Add("トロ") .Items.Add("マグロ") .Text = "メニューを選択してください" .BackColor = Color.PowderBlue .Font = New Font("MS Pゴシック", 18) End With End Sub 図1.上記実行結果 |
2.上記の下準備 |
ImageList1 に表示するアイコン(画像)を登録しておいて下さい。 ImageList に画像ファイルを登録する事が解らない場合は、下記サイト等を参考にして下さい http://homepage1.nifty.com/rucio/main/kiso/Kiso12ImageList.htm 図2.ImageList にを Image を登録した図 又、VB マイグレーション Tips のコンボボックスのリストにイメージを表示する方法にも掲載されているので参考にして下さい。 |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
オーナードロー 複数列表示 コンボボックス イメージの表示 画像の表示 アイコンの表示 画像付きコンボボックス |