将datagridview值传递到消息框,格式为vb.net

时间:2018-08-30 03:01:28

标签: vb.net datagridview

我想将数据从datagridview中的一个格式化列传递到消息框,但问题是数据已传递但不包括格式化。我的意思是我传递数据时要显示的列是数字列,仅传递数字。我希望将逗号和句点包括在内。

这是图片:

Here is the column

这是消息框结果:

Message box result

如您所见,没有逗号和句号。我要包括逗号和句点。

这里是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)

如何解决这个问题?

1 个答案:

答案 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))