DrawMode Перечисление
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает способ рисования элементов, входящих в элемент управления.
public enum class DrawMode
public enum DrawMode
type DrawMode =
Public Enum DrawMode
- Наследование
Поля
Имя | Значение | Описание |
---|---|---|
Normal | 0 | Рисование всех элементов в элементе управления выполняется операционной системой, и все элементы имеют одинаковый размер. |
OwnerDrawFixed | 1 | Рисование всех элементов в элементе управления выполняется вручную, и все элементы имеют одинаковый размер. |
OwnerDrawVariable | 2 | Рисование всех элементов в элементе управления выполняется вручную, и размер их может быть разным. |
Примеры
В следующем примере показано, как создавать элементы, нарисованные владельцем ListBox . Код использует ListBox.DrawMode свойство , чтобы указать, что нарисованные элементы имеют фиксированный размер, а ListBox.DrawItem событие для выполнения рисования каждого элемента в ListBox. В примере используются свойства и методы класса , передаваемые DrawItemEventArgs в качестве параметра обработчику событий для рисования элементов. В этом примере предполагается, что ListBox элемент управления с именем listBox1
был добавлен в форму и что ListBox.DrawItem событие обрабатывается обработчиком событий, определенным в примере. В примере также предполагается, что элементы были добавлены в ListBox с текстом "Apple", "Orange" и "Plum" в указанном порядке.
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
Комментарии
Это перечисление используется элементами, такими как DrawMode в классах ListBox, CheckedListBoxи ComboBox .
Вы можете переопределить рисование некоторых элементов управления или определенных элементов. Это перечисление используется для указания того, рисуется ли элемент управления операционной системой или ваш собственный код обрабатывает рисование элемента управления.
Примечание
Класс CheckedListBox поддерживает Normal
только режимы рисования владельца.
Дополнительные сведения об использовании перечисления DrawMode
см. в MeasureItem
разделе события и DrawItem
и ItemHeight
свойство .