1

这是一个 vb.net winforms 应用程序。我在 datagridview 中有一个绑定的 DataGridViewCombo 框列。它允许用户选择 6 种不同的交易类型。现金交易和支票交易都具有相同的 ValueMember。决定 2 的区别是 Check Number 列是否有值。我的问题很容易在这里看到。两者相同的 ValueMember 使用 DisplayMember 为需要 checkNumber 的值设置值。这纯粹是为了用户体验,而不是为了在幕后将其保存为付款。这就像我需要的东西,当然它不正确,因为“支票付款”作为需要整数的 ValueMember 无效。

       For i As Integer = 0 To FinancialDataGridView.RowCount - 1
        If Not IsNothing(FinancialDataGridView.Rows(i).Cells(2).Value) Then
            FinancialDataGridView.Rows(i).Cells(5).Value = "Check Payment"
        End If

    Next

按钮列属性

但它给出了我认为我可以去做的方式的想法。有什么想法吗?

4

1 回答 1

3

看看下面的代码,希望对你有帮助:

 For Each row As DataGridViewRow In FinancialDataGridView.Rows
        If Not IsNothing(row.Cells(2).Value) Then
            With CType(row.Cells(5), DataGridViewComboBoxCell)
                ' This gives you the ability to set the value member if you have the ID
                .ValueMember = 1
                ' This gives you the ability to set it by display memeber if you only have the string (Less safe)
                .DisplayMember = ("Your string")
            End With
        End If
    Next

您将看到我已经更改了 for 循环,通过使用 for each 您可以在循环中访问整行。

通过将单元格键入 DataGridViewComboBoxCell,您可以访问显示成员和值成员。

于 2012-10-09T16:41:32.250 回答