ListBox.DrawMode 属性

定义

获取或设置控件的绘图模式。

public virtual System.Windows.Forms.DrawMode DrawMode { get; set; }

属性值

DrawMode 值之一,表示用于绘制控件的项的模式。 默认值为 DrawMode.Normal

例外

分配给属性的值不是 DrawMode 枚举的成员。

多列 ListBox 的高度不能变化。

示例

下面的代码示例演示如何创建所有者绘制 ListBox 的项。 代码使用 DrawMode 属性指定绘制的项大小固定,以及 DrawItem 执行将每个项绘制到 中的 ListBox事件。 示例代码使用作为参数传递给事件处理程序的 DrawItemEventArgs 类的属性和方法来绘制项。 此示例要求 ListBox 已将名为 的 listBox1 控件添加到窗体中, 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();
}

适用于

产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

另请参阅