我试图用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);
答案 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);
}