我想将数据从datagridview中的一个格式化列传递到消息框,但问题是数据已传递但不包括格式化。我的意思是我传递数据时要显示的列是数字列,仅传递数字。我希望将逗号和句点包括在内。
这是图片:
这是消息框结果:
如您所见,没有逗号和句号。我要包括逗号和句点。
这里是datagridview_cellformatting
:
Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If (e.ColumnIndex = 7) Then
DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).ValueType = GetType(Double)
DataGridView1.Columns(7).DefaultCellStyle.Format = "N2"
End If
If DataGridView1.Rows(e.RowIndex).Cells(7).Value Is DBNull.Value Then
DataGridView1.Rows(e.RowIndex).Cells(7).Value = "0.00"
End If
End Sub
这是MessageBox
:
MessageBox.Show(DataGridView1.Rows(0).Cells(7).Value)
如何解决这个问题?
答案 0 :(得分:1)
您要在此处指定列单元格的格式:
DataGridView1.Columns(7).DefaultCellStyle.Format = "N2"
例如,将值转换为String
时也需要提供相同的格式说明符。
MessageBox.Show(DataGridView1.Rows(0).Cells(7).Value.ToString(DataGridView1.Columns(7).DefaultCellStyle.Format))
如果要始终使用Option Strict On
,那么您需要这样做:
MessageBox.Show(CDbl(DataGridView1.Rows(0).Cells(7).Value).ToString(DataGridView1.Columns(7).DefaultCellStyle.Format))