次の方法で共有


DrawMode 列挙体

コントロールの要素の描画方法を指定します。

<Serializable>
Public Enum DrawMode
[C#]
[Serializable]
public enum DrawMode
[C++]
[Serializable]
__value public enum DrawMode
[JScript]
public
   Serializable
enum DrawMode

解説

この列挙体は、 ListBoxCheckedListBoxComboBox の各クラスの 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