如何使DataGridView的单元格中负数显示为红色,正数显示为蓝色。
目前在做一个凭证录入和程序,现在有这样一个问题:
在录入金额的时候,如果用户输入负数,则本单元格显示为红色,且不显示负号。
当金额为正数的时候则显示为蓝色。
目前我是这样处理的:
Try
If dgrd3.Columns(e.ColumnIndex).Name = "FAmountFor " Or dgrd3.Columns(e.ColumnIndex).Name = "FDebitAmount " Or dgrd3.Columns(e.ColumnIndex).Name = "FCreditAmount " Then
If e.Value Is Nothing Then
Exit Sub
End If
If e.Value Is DBNull.Value Then
Exit Sub
End If
If IsNumeric(e.Value) = False Then
e.Value = 0
End If
If e.Value < 0 Then
e.CellStyle.ForeColor = Color.Red
Else
e.CellStyle.ForeColor = Color.Blue
End If
End If
Catch ex As Exception
MsgBox( "dgrd3_CellFormatting: " + ex.ToString, MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, Msg.CompanyName)
End Try
但没法去掉负号(-),请问可否使用:Style.Format或者其他方法处理,谢谢!
[解决办法]
If e.Value < 0 Then
e.CellStyle.ForeColor = Color.Red
Else
e.CellStyle.ForeColor = Color.Blue
End If
用
If e.Value < 0 Then
e.CellStyle.ForeColor = Color.Red
e.Value *= -1
Else
e.CellStyle.ForeColor = Color.Blue
End If
可以么,呵呵。有点偷鸡的感觉。
[解决办法]
自己扫循环
for(int i=0;i <DataGridView.rows.count;i++)
{
for(int k=0;k <DataGridView.cloumn.count;k++)
{
if(DataGridView.rows[i].cell[k].value> =0)
{
DataGridView.rows[i].cell[k].backcolor=Color.Blue
}
else
{
DataGridView.rows[i].cell[k].value=DataGridView.rows[i].cell[k].value *(-1)
DataGridView.rows[i].cell[k].backcolor=Color.red
}
}
}
[解决办法]
这个办法好像不错,也可行。我怎么没想到?
[解决办法]
试了一下,还真行。可能看齐来笨了点,呵呵。
For i As Int32 = 0 To DataGridView1.Rows.Count - 1
For j As Int32 = 0 To DataGridView1.Columns.Count - 1
If IsNumeric(DataGridView1.Rows(i).Cells(j).Value) Then
If DataGridView1.Rows(i).Cells(j).Value < 0 Then
DataGridView1.Rows(i).Cells(j).Value *= -1
DataGridView1.Rows(i).Cells(j).Style.ForeColor = Color.Red
Else
DataGridView1.Rows(i).Cells(j).Style.ForeColor = Color.Blue
End If
End If
Next
Next
[解决办法]
可以通过颜色再判断正负号啊。
[解决办法]
输入的时候直接判断啊!
[解决办法]
用验证单元格来判断,Datagridview有这个事件~~~~
[解决办法]
可以写在EditCompleted事件中。