首先是这种处理listView的方式在构造函数中添加项是正确的方法吗?第二,我如何为红色的所有文本“Ready”着色?只有“准备好了”?
listView1.View = View.Details;
listView1.GridLines = true;
listView1.FullRowSelect = true;
//Add column header
listView1.Columns.Add("Status", 70);
listView1.Columns.Add("Country", 70);
listView1.Columns.Add("Link", 399);
string[] arr = new string[countriesCodes.Length];
ListViewItem itm;
for (int i = 0; i < countriesCodes.Length; i++)
{
arr[0] = "Ready";
arr[1] = countriesCodes[i];
arr[2] = lines[i];
itm = new ListViewItem(arr);
listView1.Items.Add(itm);
}
运行prgoram时listview的屏幕截图: 我想仅将“状态”行的颜色设置为红色,我的意思是仅将文本“就绪”用红色着色,其余部分不用颜色。
如果我正在添加此方法:
private void colorReady()
{
foreach (ListViewItem li in listView1.Items)
{
if (li.Text == "Ready")
{
li.ForeColor = Color.Red;
}
}
}
然后调用colorReady();在设置所有listView之后的构造函数中,它将为listView中的所有项目着色,就像它在屏幕截图中显示的一样。
答案 0 :(得分:2)
制作一个空格并将其命名为任何名称,我将其命名为colorReady
。
private void colorReady()
{
foreach (ListViewItem li in listView1.Items)
{
if(li.Text == "Ready")
{
li.SubItems.Add("Color");
li.SubItems[0].ForeColor = Color.Red;
li.UseItemStyleForSubItems = false;
}
}
}
然后在上面的代码之后调用它。
listView1.View = View.Details;
listView1.GridLines = true;
listView1.FullRowSelect = true;
//Add column header
listView1.Columns.Add("Status", 70);
listView1.Columns.Add("Country", 70);
listView1.Columns.Add("Link", 399);
string[] countriesCodes = new string[] { "test1", "test2", "test3" };
string[] arr = new string[countriesCodes.Length];
ListViewItem itm;
for (int i = 0; i < countriesCodes.Length; i++)
{
arr[0] = "Ready";
arr[1] = countriesCodes[i];
itm = new ListViewItem(arr);
listView1.Items.Add(itm);
}
colorReady();
添加一个不准备好的项目&#39;测试结果。