private void dataGridView1_CellPainting_1(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex == -1)
return; DataGridViewRow dgr = dataGridView1.Rows[e.RowIndex];
try
{
if (int.Parse(dataGridView1.Rows[e.RowIndex].Cells["id"].Value.ToString()) > 10)
{ e.CellStyle.ForeColor = Color.Red;
} }
catch { }
} // 如上,如果我不try,catch一下的话,字体颜色是改变了,但是只是晃的一下就没了,接着就是一把好大好大的红
// 叉叉!完了就报一个错~
// 疑问1:有没有办法在不捕捉异常的情况下改一下上面的代码让它不报错了?
// 疑问2:如果我不改代码,就跟上面一样搞,虽然异常没有报了,大红叉也没有了,程序会不会一直在这里吃内存了?
// 如果没有吃内存的话,是不是这样就行得通了?
解决方案 »
- ViewStateDecoder 查看器 和容量有关么?
- 页面启动后触发同时触发2个事件的问题
- ◆◆◆Microsoft.mshtml问题,达人请指点◆◆◆
- 问几个小问题
- 还是sql语句,困惑了很长时间。。。
- 初学c#,想找几个未编译过的例子练习一下,不知道大家谁有,谢谢!
- VBNET中有DIM WITHEVENTS AS NEW PRINTDOCUMENT,在C#中如何办呢?
- 关于C#中字符串的问题??请高手出马,20分献上
- C# .NET的基本问题:ASPX和ASPX.CS的关系
- 有关批量更新后台数据库的问题,ACCESS数据库。
- datagrid添加了behavior后出现的问题
- VB.net 怎么改成 C#.net
int.TryParse(dataGridView1.Rows[e.RowIndex].Cells["id"].Value,out i);
if(i>10)
{}
另外int.Parse是有异常风险的,建议用TryParse. private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridViewRow dgr = dataGridView1.Rows[e.RowIndex]; int id;
if (e.Value != null && int.TryParse(e.Value.ToString(), out id) && id > 10)
{
e.CellStyle.ForeColor = Color.Red;
}
}