更改子项背景颜色c#

时间:2015-07-13 19:36:32

标签: c# listview colors background

我试图用C#中的listview对象更改特定列的背景颜色。

我只有两列:第一列叫做#34;序列"另一个被称为"残留"。第二个名为" Residue",是我想要的列#34;画"。

我使用的代码只是更改完整行背景而不是列" Residue"。

希望任何人都可以提供帮助!

非常感谢。

这是我的代码:

for (int i = 0; i < Variables.NSeqSNP; i++)
        {
            char res = Variables.SequencesSNP[i].ToString()[pos];
            ListViewItem lvi = new ListViewItem(Variables.SeqNameSNP[i].ToString());
            lvi.SubItems.Add(res + " ");
            if (res == 'A') lvi.SubItems[0].BackColor = Color.Blue;
            else if (res == 'T') lvi.SubItems[0].BackColor = Color.Red;
            else if (res == 'C') lvi.SubItems[0].BackColor = Color.Green;
            else if (res == 'G') lvi.SubItems[0].BackColor = Color.Yellow;

            lstOutputSNP.Items.Add(lvi);

1 个答案:

答案 0 :(得分:1)

如果您正在尝试绘制第二行,那么您将需要使用SubItems [1]。至于绘画,添加“lvi.UseItemStyleForSubItems = false;”如下所示

for (int i = 0; i < Variables.NSeqSNP; i++)
{
    char res = Variables.SequencesSNP[i].ToString()[pos];
    ListViewItem lvi = new ListViewItem(Variables.SeqNameSNP[i].ToString());
    lvi.SubItems.Add(res + " ");
    lvi.UseItemStyleForSubItems = false;
    if (res == 'A') lvi.SubItems[1].BackColor = Color.Blue;
    else if (res == 'T') lvi.SubItems[1].BackColor = Color.Red;
    else if (res == 'C') lvi.SubItems[1].BackColor = Color.Green;
    else if (res == 'G') lvi.SubItems[1].BackColor = Color.Yellow;

    lstOutputSNP.Items.Add(lvi);
}
相关问题