溫馨提示×

如何設置CheckedListBox不同項的顏色

小樊
249
2024-07-06 18:44:13
欄目: 編程語言

要設置CheckedListBox中不同項的顏色,您可以使用OwnerDraw屬性來自定義項的繪制,然后在繪制項時設置不同項的顏色。

以下是一個示例代碼,演示如何設置CheckedListBox中不同項的顏色:

private void checkedListBox1_DrawItem(object sender, DrawItemEventArgs e)
{
    if (e.Index < 0) return;

    // 獲取CheckedListBox控件
    CheckedListBox clb = (CheckedListBox)sender;

    // 創建畫刷
    Brush brush = Brushes.Black;
    if (clb.GetItemChecked(e.Index))
    {
        brush = Brushes.Red;
    }
    else
    {
        brush = Brushes.Green;
    }

    // 繪制項的文本
    e.DrawBackground();
    e.Graphics.DrawString(clb.Items[e.Index].ToString(), e.Font, brush, e.Bounds, StringFormat.GenericDefault);

    // 如果項被選中則繪制復選框
    if ((e.State & DrawItemState.Selected) == DrawItemState.Selected)
    {
        ControlPaint.DrawCheckBox(e.Graphics, e.Bounds.Left + 1, e.Bounds.Top + 1, 12, 12, ButtonState.Flat | ButtonState.Checked);
    }
    else
    {
        ControlPaint.DrawCheckBox(e.Graphics, e.Bounds.Left + 1, e.Bounds.Top + 1, 12, 12, ButtonState.Flat | ButtonState.Normal);
    }

    e.DrawFocusRectangle();
}

在上面的代碼中,我們使用了CheckedListBox的DrawItem事件來自定義項的繪制。在繪制項時,根據項的選中狀態設置不同的顏色。您還可以根據需要修改繪制項的方式和顏色。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女