【发布时间】:2018-09-05 12:47:44
【问题描述】:
当我一一读取我的数据库值时,我做了一个 if 语句并尝试更改行颜色。
例如fark <= 10.000,我的行颜色是红色;如果fark < 0 我的行颜色是黑色。
我写了上面的代码,当我执行它给我错误:
InvalidArgument=“1”的值对“索引”无效。 参数名称:索引
我的代码:
while (dr.Read())
{
ListViewItem lv = new ListViewItem(
dr[0].ToString());
lv.SubItems.Add(dr[1].ToString());
lv.SubItems.Add(dr[2].ToString());
lv.SubItems.Add(dr[3].ToString());
lv.SubItems.Add(dr[4].ToString());
listView1.Items.Add(lv);
fark = Convert.ToDouble(dr[3].ToString()) - Convert.ToDouble(dr[4].ToString());
if (fark <= 10.000)
{
MessageBox.Show("Near Maximum ");
listView1.Items[linemum].BackColor = Color.Red;
}
else if (fark <= 20.000 && fark >= 10.000)
{
MessageBox.Show("Maybe Near");
listView1.Items[linemum].BackColor = Color.Yellow;
}
else if (fark < 0)
{
MessageBox.Show("overflow");
listView1.Items[linemum].BackColor = Color.Black;
}
linemum = linemum + 1;
}
【问题讨论】:
-
CodeProject 有很多示例。这是一个:codeproject.com/Articles/24114/…
-
值得注意的是,DataGridView 是数据库相关数据显示的更好选择。这是一个实际的网格和条件颜色等很容易
-
您可以通过设置
LabelEdit=true让用户只在列表视图中编辑一个列。