7.ListBox の背景色を1行飛びに設定する(オーナードローによる)(19_Lst_08) (旧、SampleNo.110) |
1.ListBox の背景色を1行飛びに設定する(オーナードローによる) 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 :追加なし 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.ListBox の背景色を1行飛びに設定する(オーナードローによる) |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '1行飛びに背景色を設定(オーナードローで) If ListBox1.DrawMode = DrawMode.OwnerDrawFixed Then ListBox1.DrawMode = DrawMode.Normal Else ListBox1.DrawMode = DrawMode.OwnerDrawFixed End If End Sub Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem ' オーナー描画の ListBox 項目を作成(ヘルプに同様のサンプルあり) '項目が選択された場合は強調表示 e.DrawBackground() If (e.State And DrawItemState.Selected) <> DrawItemState.Selected Then '項目が選択されていない場合背景色を指定の色で描画 If (e.Index Mod 2) = 1 Then e.Graphics.FillRectangle(Brushes.LightPink, New RectangleF( _ e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height)) End If End If '指定した位置に、指定した Brush オブジェクトと 'Font オブジェクトで、指定した文字列を描画 e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), e.Font, New SolidBrush(e.ForeColor), _ New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height)) '描画されている項目に Focus がある場合は、フォーカスを示す四角形を描画する e.DrawFocusRectangle() End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load With ListBox1 .Items.Add("あいうえお アイウエオ") .Items.Add("かきくけこ カキクケコ") .Items.Add("さしすせそ サシスセソ") .Items.Add("たちつてと タチツテト") .Items.Add("なにぬねの ナニヌネノ") .Items.Add("はひふへほ ハヒフヘホ") .Items.Add("まみむめも マミムメモ") .Items.Add("や ゆ よ ヤ ユ ヨ") .Items.Add("らりるれろ ラリルレロ") .Items.Add("わをん ワヲン") End With End Sub End Class 図1.上記実行結果 |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |