29 个解决方案
#1
查出那列的所有值,然后,改变背景色
#2
假如Cells[0]即第一列是你所说的那列
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex > -1)
{
if (Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value) == 1)
e.CellStyle.BackColor = Color.Red;
else if (Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value) == 2)
e.CellStyle.BackColor = Color.Green;
else
e.CellStyle.BackColor = Color.Blue;
}
}
#3
先判断,找到行
this.dataGridView1.Rows[0].DefaultCellStyle.ForeColor=Color.Red;
this.dataGridView1.Rows[0].DefaultCellStyle.ForeColor=Color.Red;
#4
我想要改变的是值小于10 所对应的那一行的颜色,而不是整个dataGridView
#5
现在的问题就是我不知道该怎么去找那就小于10的所对应的行!!
#6
for (int m = 0; m < dgv2.Rows.Count; m++)
{
if (dgv1.Rows[j].Cells["UserName"].Value.ToString().Contains("Allen"))
{
dgv1.Rows[j].DefaultCellStyle.BackColor = Color.Green;
}
}
{
if (dgv1.Rows[j].Cells["UserName"].Value.ToString().Contains("Allen"))
{
dgv1.Rows[j].DefaultCellStyle.BackColor = Color.Green;
}
}
#7
if (Convert.ToInt32(dgv1.Rows[j].Cells["WTITMN"].Value.ToString()) < 10)
{
dgv1.Rows[j].DefaultCellStyle.BackColor = Color.Red;
}
{
dgv1.Rows[j].DefaultCellStyle.BackColor = Color.Red;
}
#8
只有遍历那一列字段,判断小于10
#9
这个最好理解也最简单。
#10
这个有点看不懂!
#11
for (int i = 0; i <=dgv_Stocks.Rows.Count; i++)
{
if (Convert.ToInt32(dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()) < 10)
dgv_Stocks.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
这样写也报错!未将对象引用设置到对象的实例。
{
if (Convert.ToInt32(dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()) < 10)
dgv_Stocks.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
这样写也报错!未将对象引用设置到对象的实例。
#12
不要等号,试试
for (int i = 0; i <dgv_Stocks.Rows.Count; i++)
{
if (Convert.ToInt32(dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()) < 10)
dgv_Stocks.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
#13
那就是没取到值啊,你看看你的下标是多少?有没有剩余数量那一列,剩余数量是数据库查出来的字段,别搞错了。
#14
不是等号的问题 试过了。
Convert.ToInt32(dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()) 未将对象引用设置到对象的实例
Convert.ToInt32(dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()) 未将对象引用设置到对象的实例
#15
这跟等号有什么关系?你前面那句话都没取到值,怎么等于?
dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()这句话我我这里写的,你要改为你那里的实际变量和参数,不要复制我的代码进去。
dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()这句话我我这里写的,你要改为你那里的实际变量和参数,不要复制我的代码进去。
#16
这个没错。这是绑定代码
ocmd.CommandText = "select MaterielRegiser_Number as 货料编号,MaterielRegiser_Name as 货料名称,MaterielRegiser_Model as 规格型号,MaterielRegiser_Unit as 单位,MaterielRegiser_Total as 剩余数量 from MIS_MaterielRegiser";
DataSet ds = new DataSet();
oda = new OleDbDataAdapter(ocmd);
oda.Fill(ds);
this.dgv_Stocks.DataSource=ds.Tables[0];
ocmd.CommandText = "select MaterielRegiser_Number as 货料编号,MaterielRegiser_Name as 货料名称,MaterielRegiser_Model as 规格型号,MaterielRegiser_Unit as 单位,MaterielRegiser_Total as 剩余数量 from MIS_MaterielRegiser";
DataSet ds = new DataSet();
oda = new OleDbDataAdapter(ocmd);
oda.Fill(ds);
this.dgv_Stocks.DataSource=ds.Tables[0];
#17
for (int i = 0; i < dgv_Stocks.Rows.Count; i++)改过了啊。i代表所有列
#18
那个 dgv_Stocks 是我程序里面的代码,你的程序里面也是这么命名的????????
#19
这个一直都是我写的好吧。你最初给的是dgv1
#20
哦,我搞混了,不好意思,你要看看你那个“剩余数量”有没有?
我写个最简单的例子给你,你复制过去试试看:
private void DataGridView1_CellFormatting_1(object sender, DataGridViewCellFormattingEventArgs e)
{
try
{
if (e != null && e.RowIndex > -1)
{
DataGridViewRow dr = this.DataGridView1.Rows[e.RowIndex];
string dateStr = dr.Cells[6].Value.ToString();
string nowdata = DateTime.Now.ToString("yyyy年M月dd日");
if (dateStr == nowdata)
{
dr.DefaultCellStyle.BackColor = Color.Red;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我写个最简单的例子给你,你复制过去试试看:
private void DataGridView1_CellFormatting_1(object sender, DataGridViewCellFormattingEventArgs e)
{
try
{
if (e != null && e.RowIndex > -1)
{
DataGridViewRow dr = this.DataGridView1.Rows[e.RowIndex];
string dateStr = dr.Cells[6].Value.ToString();
string nowdata = DateTime.Now.ToString("yyyy年M月dd日");
if (dateStr == nowdata)
{
dr.DefaultCellStyle.BackColor = Color.Red;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
#21
首先把AllowUserToAddRows属性设置为false
再用下面代码
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (Convert.ToInt32(dataGridView1.Rows[i].Cells["剩余数量"].Value.ToString()) < 10)
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
#22
我把你给的索引值改了还是一样的。未将对象引用设置到对象的实例
#23
已经搞定了,首先把AllowUserToAddRows属性设置为false,
dataGridView1.ClearSelection();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (Convert.ToInt32(dataGridView1.Rows[i].Cells["column2"].Value.ToString()) < 10)
{
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
#24
晕,一改果然好了。非常感谢
#25
非常感谢各位的热心帮助,谢谢大家!
#26
设置一下 dataGridView1.ClearSelection();因为有数据的话第一个单元格默认选择。这个是取消掉默认选择
#27
我草,这么邪门儿?怎么可能呢???
你看这张图片,我不知怎么样可以贴到这里,我放在空间里面。
http://hi.csdn.net/space-300592-do-album-picid-1087062.html
代码:
private void dgv_model_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e != null && e.RowIndex > -1)
{
DataGridViewRow dr = this.dgv_model.Rows[e.RowIndex];
string OldValue = dr.Cells[1].Value.ToString().Trim().ToUpper();
string NewValue = "COAT";
if (OldValue == NewValue)
{
dr.DefaultCellStyle.BackColor = Color.Red;
}
}
}
你看这张图片,我不知怎么样可以贴到这里,我放在空间里面。
http://hi.csdn.net/space-300592-do-album-picid-1087062.html
代码:
private void dgv_model_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e != null && e.RowIndex > -1)
{
DataGridViewRow dr = this.dgv_model.Rows[e.RowIndex];
string OldValue = dr.Cells[1].Value.ToString().Trim().ToUpper();
string NewValue = "COAT";
if (OldValue == NewValue)
{
dr.DefaultCellStyle.BackColor = Color.Red;
}
}
}
#28
第一:不要=,BASE 0
第二:VALUE 为空时,不能使用value.tostring(),
第二:VALUE 为空时,不能使用value.tostring(),
#29
databind 的时候 判断一下吧
#1
查出那列的所有值,然后,改变背景色
#2
假如Cells[0]即第一列是你所说的那列
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.RowIndex > -1)
{
if (Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value) == 1)
e.CellStyle.BackColor = Color.Red;
else if (Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value) == 2)
e.CellStyle.BackColor = Color.Green;
else
e.CellStyle.BackColor = Color.Blue;
}
}
#3
先判断,找到行
this.dataGridView1.Rows[0].DefaultCellStyle.ForeColor=Color.Red;
this.dataGridView1.Rows[0].DefaultCellStyle.ForeColor=Color.Red;
#4
我想要改变的是值小于10 所对应的那一行的颜色,而不是整个dataGridView
#5
现在的问题就是我不知道该怎么去找那就小于10的所对应的行!!
#6
for (int m = 0; m < dgv2.Rows.Count; m++)
{
if (dgv1.Rows[j].Cells["UserName"].Value.ToString().Contains("Allen"))
{
dgv1.Rows[j].DefaultCellStyle.BackColor = Color.Green;
}
}
{
if (dgv1.Rows[j].Cells["UserName"].Value.ToString().Contains("Allen"))
{
dgv1.Rows[j].DefaultCellStyle.BackColor = Color.Green;
}
}
#7
if (Convert.ToInt32(dgv1.Rows[j].Cells["WTITMN"].Value.ToString()) < 10)
{
dgv1.Rows[j].DefaultCellStyle.BackColor = Color.Red;
}
{
dgv1.Rows[j].DefaultCellStyle.BackColor = Color.Red;
}
#8
只有遍历那一列字段,判断小于10
#9
这个最好理解也最简单。
#10
这个有点看不懂!
#11
for (int i = 0; i <=dgv_Stocks.Rows.Count; i++)
{
if (Convert.ToInt32(dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()) < 10)
dgv_Stocks.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
这样写也报错!未将对象引用设置到对象的实例。
{
if (Convert.ToInt32(dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()) < 10)
dgv_Stocks.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
这样写也报错!未将对象引用设置到对象的实例。
#12
不要等号,试试
for (int i = 0; i <dgv_Stocks.Rows.Count; i++)
{
if (Convert.ToInt32(dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()) < 10)
dgv_Stocks.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
#13
那就是没取到值啊,你看看你的下标是多少?有没有剩余数量那一列,剩余数量是数据库查出来的字段,别搞错了。
#14
不是等号的问题 试过了。
Convert.ToInt32(dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()) 未将对象引用设置到对象的实例
Convert.ToInt32(dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()) 未将对象引用设置到对象的实例
#15
这跟等号有什么关系?你前面那句话都没取到值,怎么等于?
dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()这句话我我这里写的,你要改为你那里的实际变量和参数,不要复制我的代码进去。
dgv_Stocks.Rows[i].Cells["剩余数量"].Value.ToString()这句话我我这里写的,你要改为你那里的实际变量和参数,不要复制我的代码进去。
#16
这个没错。这是绑定代码
ocmd.CommandText = "select MaterielRegiser_Number as 货料编号,MaterielRegiser_Name as 货料名称,MaterielRegiser_Model as 规格型号,MaterielRegiser_Unit as 单位,MaterielRegiser_Total as 剩余数量 from MIS_MaterielRegiser";
DataSet ds = new DataSet();
oda = new OleDbDataAdapter(ocmd);
oda.Fill(ds);
this.dgv_Stocks.DataSource=ds.Tables[0];
ocmd.CommandText = "select MaterielRegiser_Number as 货料编号,MaterielRegiser_Name as 货料名称,MaterielRegiser_Model as 规格型号,MaterielRegiser_Unit as 单位,MaterielRegiser_Total as 剩余数量 from MIS_MaterielRegiser";
DataSet ds = new DataSet();
oda = new OleDbDataAdapter(ocmd);
oda.Fill(ds);
this.dgv_Stocks.DataSource=ds.Tables[0];
#17
for (int i = 0; i < dgv_Stocks.Rows.Count; i++)改过了啊。i代表所有列
#18
那个 dgv_Stocks 是我程序里面的代码,你的程序里面也是这么命名的????????
#19
这个一直都是我写的好吧。你最初给的是dgv1
#20
哦,我搞混了,不好意思,你要看看你那个“剩余数量”有没有?
我写个最简单的例子给你,你复制过去试试看:
private void DataGridView1_CellFormatting_1(object sender, DataGridViewCellFormattingEventArgs e)
{
try
{
if (e != null && e.RowIndex > -1)
{
DataGridViewRow dr = this.DataGridView1.Rows[e.RowIndex];
string dateStr = dr.Cells[6].Value.ToString();
string nowdata = DateTime.Now.ToString("yyyy年M月dd日");
if (dateStr == nowdata)
{
dr.DefaultCellStyle.BackColor = Color.Red;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我写个最简单的例子给你,你复制过去试试看:
private void DataGridView1_CellFormatting_1(object sender, DataGridViewCellFormattingEventArgs e)
{
try
{
if (e != null && e.RowIndex > -1)
{
DataGridViewRow dr = this.DataGridView1.Rows[e.RowIndex];
string dateStr = dr.Cells[6].Value.ToString();
string nowdata = DateTime.Now.ToString("yyyy年M月dd日");
if (dateStr == nowdata)
{
dr.DefaultCellStyle.BackColor = Color.Red;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
#21
首先把AllowUserToAddRows属性设置为false
再用下面代码
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (Convert.ToInt32(dataGridView1.Rows[i].Cells["剩余数量"].Value.ToString()) < 10)
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
#22
我把你给的索引值改了还是一样的。未将对象引用设置到对象的实例
#23
已经搞定了,首先把AllowUserToAddRows属性设置为false,
dataGridView1.ClearSelection();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if (Convert.ToInt32(dataGridView1.Rows[i].Cells["column2"].Value.ToString()) < 10)
{
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.Red;
}
}
#24
晕,一改果然好了。非常感谢
#25
非常感谢各位的热心帮助,谢谢大家!
#26
设置一下 dataGridView1.ClearSelection();因为有数据的话第一个单元格默认选择。这个是取消掉默认选择
#27
我草,这么邪门儿?怎么可能呢???
你看这张图片,我不知怎么样可以贴到这里,我放在空间里面。
http://hi.csdn.net/space-300592-do-album-picid-1087062.html
代码:
private void dgv_model_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e != null && e.RowIndex > -1)
{
DataGridViewRow dr = this.dgv_model.Rows[e.RowIndex];
string OldValue = dr.Cells[1].Value.ToString().Trim().ToUpper();
string NewValue = "COAT";
if (OldValue == NewValue)
{
dr.DefaultCellStyle.BackColor = Color.Red;
}
}
}
你看这张图片,我不知怎么样可以贴到这里,我放在空间里面。
http://hi.csdn.net/space-300592-do-album-picid-1087062.html
代码:
private void dgv_model_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e != null && e.RowIndex > -1)
{
DataGridViewRow dr = this.dgv_model.Rows[e.RowIndex];
string OldValue = dr.Cells[1].Value.ToString().Trim().ToUpper();
string NewValue = "COAT";
if (OldValue == NewValue)
{
dr.DefaultCellStyle.BackColor = Color.Red;
}
}
}
#28
第一:不要=,BASE 0
第二:VALUE 为空时,不能使用value.tostring(),
第二:VALUE 为空时,不能使用value.tostring(),
#29
databind 的时候 判断一下吧