当前位置:  开发笔记 > 编程语言 > 正文

如何使用自己的值更改listview子项的背景颜色

如何解决《如何使用自己的值更改listview子项的背景颜色》经验,为你挑选了2个好方法。

如何使用自己的值以编程方式更改列表视图中单个单元格的背景颜色?

替代文字

ColorFlag列中的值来自数据库.

这是我的代码:

foreach(DataRow dr in _dataTbl.Rows) 
        {
            _markOW = dr["Mark"].ToString();
            _stock = dr["Stock"].ToString();
            _SteelSectio = dr["SteelSection"].ToString();
            _colo = (Int32)dr["Color"];


            ListViewItem _lvi = new ListViewItem(_markOW);
            _lvi.SubItems.AddRange(new string[]{_SteelSectio, _stock,     _colo.ToString()});

            _myListView.Items.Add(_lvi);   }

这是我试图改变单元格背景颜色的代码:

for (int _i = 0; _i < _owLV.Items.Count; _i++)
            {
                _myListView.Items[_i].UseItemStyleForSubItems = false;
                _myListView.Items[_i].SubItems[3].BackColor = Color.FromArgb(_colo);
            }

提前致谢



1> Josh..:

据我所知,你所拥有的代码看起来很好.我只是将一个快速的Windows窗体应用程序拼凑在一起,并在窗体上抛出一个ListView,其中有两列详细信息视图.以下代码工作正常.

var item1 = new ListViewItem( "Item 1");
item1.SubItems.Add( "Color" );
item1.SubItems[1].BackColor = Color.FromArgb( -16711936 );
item1.UseItemStyleForSubItems = false;

listView1.Items.Add( item1 );

我会尝试在添加项目之前设置BackColor.它看起来像你正在将所有项目设置为相同的颜色,这可能不是你想要的.



2> Leniel Macca..:

看看这些链接:

C#ListView详细信息,突出显示单个单元格

使用C#更改列表视图单元格的颜色(有一个可行的解决方案)

关键是设置这个:

listView1.Items[0].UseItemStyleForSubItems = false;

做这个:

foreach (DataRow dr in _dataTbl.Rows)
{
    _markOW = dr["Mark"].ToString();
    _stock = dr["Stock"].ToString();
    _SteelSectio = dr["SteelSection"].ToString();
    _color = (Int32)dr["Color"];

    ListViewItem _lvi = new ListViewItem(_markOW);

    _lvi.SubItems.AddRange(new string[] {_SteelSectio, _stock, _color.ToString() });    
    _lvi.UseItemStyleForSubItems = false;
    _lvi.SubItems[2].BackColor = Color.FromArgb(_color);

    _myListView.Items.Add(_lvi);
}

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有