次の方法で共有


DrawItemEventArgs クラス

DrawItem イベントのデータを提供します。

この型のすべてのメンバの一覧については、DrawItemEventArgs メンバ を参照してください。

System.Object
   System.EventArgs
      System.Windows.Forms.DrawItemEventArgs
         System.Windows.Forms.StatusBarDrawItemEventArgs

Public Class DrawItemEventArgs
   Inherits EventArgs
[C#]
public class DrawItemEventArgs : EventArgs
[C++]
public __gc class DrawItemEventArgs : public EventArgs
[JScript]
public class DrawItemEventArgs extends EventArgs

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

DrawItem イベントは、 ListBox コントロールや ComboBox コントロールなどのオーナー描画コントロールによって発生します。このデータには、項目のインデックス、 Rectangle 、描画が実行される Graphics など、指定した項目を描画するために必要な情報がすべて含まれています。

使用例

[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 内)

参照

DrawItemEventArgs メンバ | System.Windows.Forms 名前空間 | DrawItemEventHandler | ComboBox | ListBox | MenuItem | TabControl