ListBox.DrawMode プロパティ
コントロールの描画モードを取得または設定します。
Public Overridable Property DrawMode As DrawMode
[C#]
public virtual DrawMode DrawMode {get; set;}
[C++]
public: __property virtual DrawMode get_DrawMode();public: __property virtual void set_DrawMode(DrawMode);
[JScript]
public function get DrawMode() : DrawMode;public function set DrawMode(DrawMode);
プロパティ値
コントロールの項目を描画するときのモードを表す DrawMode 値の 1 つ。既定値は DrawMode.Normal です。
例外
例外の種類 | 条件 |
---|---|
InvalidEnumArgumentException | プロパティに代入された値が DrawMode 列挙体のメンバではありません。 |
ArgumentException | 複数列の ListBox の高さは可変にできません。 |
使用例
[Visual Basic, C#, C++] オーナー描画の ListBox 項目を作成する方法を次の例に示します。このコードでは、 DrawMode プロパティを使用して、描画する項目が固定サイズであることを示し、 DrawItem イベントを使用して、 ListBox への各項目の描画を実行しています。この例のコードでは、イベント ハンドラへのパラメータとして渡された DrawItemEventArgs クラスのプロパティとメソッドを使用して項目を描画しています。この例は、 listBox1
という名前の ListBox コントロールがフォームに既に追加されていて、 DrawItem イベントがこの例のコードに定義されているイベント ハンドラで処理されることを前提にしています。この例では、"Apple"、"Orange"、"Plum" の 3 つのテキストの項目がこの順番で ListBox に追加されていることも想定しています。
Private Sub listBox1_DrawItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles ListBox1.DrawItem
' Set the DrawMode property to draw fixed sized items.
ListBox1.DrawMode = DrawMode.OwnerDrawFixed
' Draw the background of the ListBox control for each item.
e.DrawBackground()
' Create a new Brush and initialize to a Black colored brush by default.
Dim myBrush As Brush
' Determine the color of the brush to draw each item based on the index of the item to draw.
Select Case (e.Index)
Case 0
myBrush = Brushes.Red
Case 1
myBrush = Brushes.Orange
Case 2
myBrush = Brushes.Purple
End Select
' Draw the current item text based on the current Font and the custom brush settings.
e.Graphics.DrawString(ListBox1.Items(e.Index), e.Font, myBrush, New RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height))
' If the ListBox has focus, draw a focus rectangle around the selected item.
e.DrawFocusRectangle()
End Sub
[C#]
private void listBox1_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e)
{
// Set the DrawMode property to draw fixed sized items.
listBox1.DrawMode = DrawMode.OwnerDrawFixed;
// Draw the background of the ListBox control for each item.
e.DrawBackground();
// Create a new Brush and initialize to a Black colored brush by default.
Brush myBrush = Brushes.Black;
// Determine the color of the brush to draw each item based on the index of the item to draw.
switch (e.Index)
{
case 0:
myBrush = Brushes.Red;
break;
case 1:
myBrush = Brushes.Orange;
break;
case 2:
myBrush = Brushes.Purple;
break;
}
// Draw the current item text based on the current Font and the custom brush settings.
e.Graphics.DrawString(listBox1.Items[e.Index].ToString(), e.Font, myBrush,e.Bounds,StringFormat.GenericDefault);
// If the ListBox has focus, draw a focus rectangle around the selected item.
e.DrawFocusRectangle();
}
[C++]
private:
void listBox1_DrawItem(Object* /*sender*/, System::Windows::Forms::DrawItemEventArgs* e)
{
// Set the DrawMode property to draw fixed sized items.
listBox1->DrawMode = DrawMode::OwnerDrawFixed;
// Draw the background of the ListBox control for each item.
e->DrawBackground();
// Create a new Brush and initialize to a Black colored brush by default.
Brush* myBrush = Brushes::Black;
// Determine the color of the brush to draw each item based on the index of the item to draw.
switch (e->Index)
{
case 0:
myBrush = Brushes::Red;
break;
case 1:
myBrush = Brushes::Orange;
break;
case 2:
myBrush = Brushes::Purple;
break;
}
// Draw the current item text based on the current Font and the custom brush settings.
e->Graphics->DrawString(
listBox1->Items->Item[e->Index]->ToString(),
e->Font, myBrush,
RectangleF::op_Implicit(e->Bounds),
StringFormat::GenericDefault);
// If the ListBox has focus, draw a focus rectangle around the selected item.
e->DrawFocusRectangle();
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
参照
ListBox クラス | ListBox メンバ | System.Windows.Forms 名前空間 | DrawMode | DrawItem