DrawMode Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa sposób rysowania elementów kontrolki.
public enum class DrawMode
public enum DrawMode
type DrawMode =
Public Enum DrawMode
- Dziedziczenie
Pola
Normal | 0 | Wszystkie elementy w kontrolce są rysowane przez system operacyjny i mają taki sam rozmiar. |
OwnerDrawFixed | 1 | Wszystkie elementy w kontrolce są rysowane ręcznie i mają ten sam rozmiar. |
OwnerDrawVariable | 2 | Wszystkie elementy w kontrolce są rysowane ręcznie i mogą różnić się rozmiarem. |
Przykłady
W poniższym przykładzie pokazano, jak utworzyć elementy rysowane ListBox przez właściciela. Kod używa ListBox.DrawMode właściwości , aby określić, że rysowane elementy mają stały rozmiar, a ListBox.DrawItem zdarzenie do wykonania rysunku każdego elementu w ListBoxobiekcie . W przykładzie użyto właściwości i metod klasy przekazanej DrawItemEventArgs jako parametr do procedury obsługi zdarzeń w celu narysowania elementów. W tym przykładzie przyjęto założenie, że kontrolka ListBox o nazwie listBox1
została dodana do formularza i że ListBox.DrawItem zdarzenie jest obsługiwane przez program obsługi zdarzeń zdefiniowany w przykładzie. W przykładzie założono również, że elementy zostały dodane do ListBox elementu z tekstem "Apple", "Orange" i "Plum" w tej kolejności.
private ListBox ListBox1 = new ListBox();
private void InitializeListBox()
{
ListBox1.Items.AddRange(new Object[]
{ "Red Item", "Orange Item", "Purple Item" });
ListBox1.Location = new System.Drawing.Point(81, 69);
ListBox1.Size = new System.Drawing.Size(120, 95);
ListBox1.DrawMode = DrawMode.OwnerDrawFixed;
ListBox1.DrawItem += new DrawItemEventHandler(ListBox1_DrawItem);
Controls.Add(ListBox1);
}
private void ListBox1_DrawItem(object sender,
System.Windows.Forms.DrawItemEventArgs e)
{
// Draw the background of the ListBox control for each item.
e.DrawBackground();
// Define the default color of the brush as black.
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();
}
Private WithEvents ListBox1 As New ListBox()
Private Sub InitializeListBox()
ListBox1.Items.AddRange(New Object() _
{"Red Item", "Orange Item", "Purple Item"})
ListBox1.Location = New System.Drawing.Point(81, 69)
ListBox1.Size = New System.Drawing.Size(120, 95)
ListBox1.DrawMode = DrawMode.OwnerDrawFixed
Controls.Add(ListBox1)
End Sub
Private Sub ListBox1_DrawItem(ByVal sender As Object, _
ByVal e As System.Windows.Forms.DrawItemEventArgs) _
Handles ListBox1.DrawItem
' Draw the background of the ListBox control for each item.
e.DrawBackground()
' Define the default color of the brush as black.
Dim myBrush As Brush = Brushes.Black
' 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).ToString(), _
e.Font, myBrush, e.Bounds, StringFormat.GenericDefault)
' If the ListBox has focus, draw a focus rectangle around _
' the selected item.
e.DrawFocusRectangle()
End Sub
Uwagi
To wyliczenie jest używane przez elementy członkowskie, takie jak DrawMode w ListBoxklasach , CheckedListBoxi ComboBox .
Można zastąpić rysunek niektórych kontrolek lub niektórych elementów. To wyliczenie służy do określania, czy kontrolka jest rysowana przez system operacyjny, czy też własny kod obsługuje rysunek kontrolki.
Uwaga
Klasa CheckedListBox obsługuje Normal
tylko tryby ; tryby rysowania właściciela są ignorowane.
Aby uzyskać więcej informacji na temat korzystania z DrawMode
wyliczenia, zobacz i MeasureItem
DrawItem
zdarzenia oraz ItemHeight
właściwość .