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

时间:2015-03-26 01:29:10

标签: c# winforms checkedlistbox

我的任务是创建一个规划器。因此,每当我输入带有数字的消息时,我都会有一个选中的列表框,它会显示分配给该数字的颜色的消息。但是当我添加另一个带有另一个数字和颜色的消息时,它会将整个选中的列表框和消息更改为我刚刚输入的颜色编号。

所以我想在我的选中列表框中添加多条消息,而不会更改为刚刚输入的最后一个数字颜色。

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);

    }

1 个答案:

答案 0 :(得分:1)

您可以使用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);
    }