2.ListBox 内の項目の高さ(行の高さ)を設定する(19_Lst_03) (旧、SampleNo.103) |
1.ListBox 内の項目の高さを設定する(オーナードローによる) 2.ListBox 内の項目の高さを設定する(Win 32 API 関数を使って) 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 :System.Runtime.InteropServices 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.ListBox 内の項目の高さを設定する(オーナードローによる) |
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'ListBox の項目のリストに項目を追加します。 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 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '1.ListBox 内の項目の高さを設定する(オーナードローによる) If ListBox1.DrawMode = DrawMode.OwnerDrawFixed Then ListBox1.DrawMode = DrawMode.Normal Else ListBox1.DrawMode = DrawMode.OwnerDrawFixed 'ListBox 内の項目の高さを取得または設定します。 ListBox1.ItemHeight = 30 End If End Sub Private Sub ListBox1_DrawItem(sender As Object, e As DrawItemEventArgs) Handles ListBox1.DrawItem '項目が選択された場合は強調表示 e.DrawBackground() Using myBrush As New SolidBrush(e.ForeColor) e.Graphics.DrawString(ListBox1.Items(e.Index).ToString(), e.Font, myBrush, _ New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height)) '描画されている項目に Focus がある場合は、フォーカスを示す四角形を描画する e.DrawFocusRectangle() End Using End Sub |
2.ListBox 内の項目の高さを設定する(Win 32 API 関数を使って) |
下記の宣言部分は、それぞれ指定の箇所に書いて下さい。 Imports System.Runtime.InteropServices <DllImport("USER32.DLL", CharSet:=CharSet.Auto)> _ Private Shared Function SendMessage( _ ByVal hWnd As IntPtr, _ ByVal wMsg As Integer, _ ByVal wParam As Integer, _ ByVal lParam As Integer) As Integer End Function '指定の項目の高さを設定する(P827) Private Const LB_SETITEMHEIGHT As Integer = &H1A0 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '2.ListBox 内の項目の高さを設定する(Win 32 API 関数を使って) Dim Ret As Integer 'ListBox 内の項目の高さを 30 ピクセルに設定します Ret = SendMessage(ListBox1.Handle, LB_SETITEMHEIGHT, 0, 30) ListBox1.Refresh() End Sub |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
リストボックス 行の高さを設定 |