如何为选中列表框中的每个任务分配单独的颜色



我的任务是创建一个计划器。所以我有一个复选框,每当我输入一条带有数字的消息时,它都会显示带有指定颜色的消息。但当我添加另一条带有另一个号码和颜色的消息时,它会将整个复选框和消息更改为我刚刚输入的颜色号码。

因此,我想在我的复选框中添加多条消息,而不会将其更改为我刚刚输入的最后一个数字颜色。

private void button1_Click(object sender, EventArgs e)
{
    int count = 0;
    if (comboBox1.SelectedItem == "5")
    {
        checkedListBox1.ForeColor = System.Drawing.Color.Red;
        checkedListBox1.Items.Add(textBox1.Text + "t" + dateTimePicker1.Text);
    }
    if (comboBox1.SelectedItem == "4")
    {
        checkedListBox1.ForeColor = System.Drawing.Color.Green;
        checkedListBox1.Items.Add(textBox1.Text + "t" + dateTimePicker1.Text);
    }
    if (comboBox1.SelectedItem == "3")
    {
        checkedListBox1.ForeColor = System.Drawing.Color.Blue;
        checkedListBox1.Items.Add(textBox1.Text + "t" + dateTimePicker1.Text);
    }
    if (comboBox1.SelectedItem == "2")
    {
        checkedListBox1.ForeColor = System.Drawing.Color.Gold;
        checkedListBox1.Items.Add(textBox1.Text + "t" + dateTimePicker1.Text);
    }

您可以为此使用ListView。首先将ListView添加到表单中,然后转到ListView的属性并将CheckBoxes属性更改为true。然后尝试下面的代码。你可以随心所欲地改变颜色。

    private void button1_Click(object sender, EventArgs e)
    {
        ListViewItem item = new ListViewItem();
        item.Text = textBox1.Text + "t" + dateTimePicker1.Text;
        if (comboBox1.SelectedIndex == 0)
        {                              
            item.ForeColor = Color.Red;
        }
        else if (comboBox1.SelectedIndex == 1)
        {
            item.ForeColor = Color.Blue;                
        }
        listView1.Items.Add(item);
    }

最新更新