listviewitem子项中未突出显示颜色

时间:2011-10-10 12:19:31

标签: c# winforms listview

我正在使用此代码隐藏偶数的前三个子项。

前者

有2个listviewitem

1)132 | 123 | 123 | 123 |购买| 11 | 11 | 11 | 11

2)132 | 123 | 123 | 123 |出售| 22 | 22 | 22 | 22

我在listview中以这样的方式显示它们

         132 |123  |123 |123 |Buy |11 |11  |11  |11 

                             |Sell|22 |22  |22  |22 

我想强调买绿色的颜色  并以红色出售

我正在使用此代码显示它突出显示绿色但不显示红色

        int iRecords = 0;
        int iDate = 0;
        int iRecords1 = 0;
        using (var sr = File.OpenText(destination + "\\Calc.txt"))
        {
            string line;
            bool flag = true;
            int i = 0;
            while ((line = sr.ReadLine()) != null)
            {
                string[] reader2 = line.Split(',');
                string Date = reader2[0];
                string Name = reader2[1];
                string Sym = reader2[2];
                double Buy = Convert.ToDouble(reader2[3]);
                double Sell = Convert.ToDouble(reader2[4]);
                double rateBuy = Convert.ToDouble(reader2[5]);
                double rateSell = Convert.ToDouble(reader2[6]);


                ListViewItem lItem = new ListViewItem();

                if (i == 0)
                {
                    lItem = listviewrates.Items.Insert(iRecords, Date.ToString());
                    date.Text = Date;
                    lItem.UseItemStyleForSubItems = false;
                    lItem.SubItems.Add(Name.ToString());
                    lItem.SubItems.Add(Sym.ToString());
                    lItem.SubItems.Add(Buy.ToString(), Color.White, Color.Green, lItem.Font);
                    lItem.SubItems.Add(rateBuy.ToString());

                    i = 2;
                    iRecords++;
                }
                if (i == 2)
                {
                    lItem = listviewTargets.Items.Insert(iRecords, "");
                    //iRecords = iRecords - 1;
                    lItem.SubItems.Add("");
                    lItem.SubItems.Add("");
                    lItem.SubItems.Add(Sell.ToString(), Color.White, Color.Red, lItem.Font);
                    lItem.SubItems.Add(rateSell.ToString());

                    i = 0;
                    iRecords++;

                }


            }



        }

任何人都可以告诉我如何突出红色以供出售。

提前致谢。

1 个答案:

答案 0 :(得分:0)

对于你的绿色物品,你做了:

lItem.useItemStyleForSubItems = false;

您还需要为红色项添加属性,因为lItem是一个新对象。

if (i == 2)
{
  lItem = listviewTargets.Items.Insert(iRecords, "");

  //Fix here:
  lItem.useItemStyleForSubItems = false;

  lItem.SubItems.Add("");
  lItem.SubItems.Add("");
  lItem.SubItems.Add(Sell.ToString(), Color.White, Color.Red, lItem.Font);
  lItem.SubItems.Add(rateSell.ToString());

  i = 0;
  iRecords++;
}