DrawMode 列挙体
コントロールの要素の描画方法を指定します。
<Serializable>
Public Enum DrawMode
[C#]
[Serializable]
public enum DrawMode
[C++]
[Serializable]
__value public enum DrawMode
[JScript]
public
Serializable
enum DrawMode
解説
この列挙体は、 ListBox 、 CheckedListBox 、 ComboBox の各クラスの DrawMode などのメンバで使用されます。
コントロールの一部または特定の要素の描画をオーバーライドできます。この列挙体を使用して、オペレーティング システムによってコントロールを描画するか、ユーザーが独自に作成したコードでコントロールの描画を処理するかを指定します。
メモ CheckedListBox クラスは DrawMode.Normal だけをサポートします。オーナー描画モードは無視されます。
DrawMode 列挙体の使用法の詳細については、 MeasureItem イベントおよび DrawItem イベントのほか、 ItemHeight プロパティを参照してください。
メンバ
メンバ名 | 説明 |
---|---|
Normal | コントロールのすべての要素は、オペレーティング システムによって同じサイズに描画されます。 |
OwnerDrawFixed | コントロールのすべての要素は、手動で同じサイズに描画されます。 |
OwnerDrawVariable | コントロール内のすべての要素は手動で描画し、要素ごとに異なるサイズを指定できます。 |
使用例
[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++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Windows.Forms
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)
参照
System.Windows.Forms 名前空間 | ListBox | CheckedListBox | ComboBox