.net - 获取 DataGridView 中所示的字符串

标签 .net vb.net datagridview

我有一个使用 DataTable 作为数据源的 DataGridView。

我需要获取(作为字符串数组)DataGridView 中显示的具有相同格式的值。

因此,在数据表中,有一个值为“100”的字段,在 DGV 中显示为“€ 100,00”。我需要将“€ 100,00”作为字符串

另一个字段是 double 值,其值为“31.506849315068493150684931507”,在 DGV 中显示为“€ 31,51”。我需要将“€ 31,51”作为字符串

DataTable 具有各种类型的字段(字符串、日期、 double ),对于所有这些字段,我需要获取 DGV 中所示的字符串。

我尝试使用下面的代码,但我得到了 DataTable 的值。

For x As Integer = 0 To Me.DGV_IntCalc.RowCount - 1
    Dim RowStrList As New List(Of String)
    For Each Col As String In MaxColLen.Keys
        RowStrList.Add(Me.DGV_IntCalc.Item(Col, x).Value.ToString)
    Next
    Calc_Summay &= String.Format(F_Str, RowStrList.ToArray) & vbCrLf
Next

F_Str 是一个字符串,提供类似于“{0,10} {1,20}”的列格式

编辑2:

我也尝试过:

RowStrList.Add(Format(Me.DGV_IntCalc.Item(Col, x).Value, _
               Me.DGV_IntCalc.Columns(Col).DefaultCellStyle.Format))

但它没有给出预期的结果。我也尝试过:

Dim Str$ = Me.DGV_IntCalc.Item(Col, x).Value.ToString
Dim Frmt$ = Me.DGV_IntCalc.Columns(Col).DefaultCellStyle.Format
Dim FormattedStr$ = Format(Str, Frmt)

Dim FormattedStr$ = String.Format(Str, Frmt)

但是我得到的值与DataTable中的值(未格式化)

最佳答案

DGV 提供包含格式的数据 View 。在某个地方你告诉它将该一列格式化为货币。也许是这样的:

dgv1.Columns(3).DefaultCellStyle.Format = "C2"

要取回这些格式化值,请使用 FormattedValue 属性:

For n As Int32 = 0 To dgv1.Rows.Count - 1
    Console.WriteLine(dgv1.Item(n, 3).FormattedValue)
Next

另请注意,在您的代码中,您在 If 内声明了您的列表:

For x As Integer = 0 To Me.DGV_IntCalc.RowCount - 1
    Dim RowStrList As New List(Of String)
    For Each Col As String In MaxColLen.Keys
        RowStrList.Add(Me.DGV_IntCalc.Item(Col, x).Value.ToString)
    Next
    Calc_Summay &= String.Format(F_Str, RowStrList.ToArray) & vbCrLf
Next

由于 RowStrList 是在 If block 内声明的,因此它只会存在于此处。所有导致缩进的内容也会创建一个新的 block 作用域。请参阅:Reference variables and objects elsewhere了解更多信息

关于.net - 获取 DataGridView 中所示的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39720571/

相关文章:

c# - 是否可以使用 List<T>.Contains(...)?

.net - 为所有新命令对象设置自定义默认命令超时

c# - DataGridViewColumn 索引在数据清除后发生变化

.net - 使用 VB.NET 将文件上传到 FTP 站点

c# - 在 Datagridview 中分组

c# - BindingNavigator 与 DataGridView 的分页功能?

c# - 比较两个xml文件并显示差异

c# - 检查 StreamReader 是否可以读取另一行

c# - 如何在我的 JSON 模型类中使用保留关键字作为标识符?

c++ - C++ 2013 中的 Dll 需要将字符串返回给 VB.net