0

我整个早上都在谷歌搜索和浏览这个网站,但没有发现任何似乎有用的东西。我在 form1 上有一个组合框,它从数据源 tblCardTypeDD 获取其显示值。其显示成员为 sCardType,其值成员为 iCardTypeID。它选择的成员是来自 tblInventory 的 fkCardTypeID。

当我单击一个按钮时,form2 会弹出一个简单的 datagridview,它允许我添加更多要在下拉列表中使用的卡片类型。目前我一直在尝试将代码添加到保存按钮单击方法,但我只是找不到实际更新组合框的组合。

我一直在尝试以下方法:

frmInventory.SEquipTypeComboBox.DataSource = Nothing
frmInventory.SEquipTypeComboBox.DataSource = Me.EngDBbeDataSet.tblCardTypeDD

但执行上述操作后下拉列表变为空白。

任何帮助,将不胜感激。

4

1 回答 1

0

你应该检查这个页面,也许它会帮助你:

http://msdn.microsoft.com/en-us/library/w67sdsex.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

如果没有:

如果您将断点放在“重置”组合框数据源绑定的位置,请检查数据源是否包含您希望在组合框中看到的新值。听起来可能很愚蠢,但这是一个经常发生的错误,如果是这种情况,您就知道问题不在于绑定

同样,在没有数据源并以您所做的方式再次添加数据源之后,您应该告诉哪一列将再次成为显示成员,如下所示:

ComboBox1.DisplayMember = "Column1"

虽然如果您查看我告诉您的站点,您应该查看说明如何暂停和恢复绑定,而不是像那样删除数据源并再次添加它。

尽管如果您使用的是数据表,则值应该会自动更改,并且没有理由删除并重新绑定组合框。

--

为了证明您不需要重新绑定,我很快就制作了一段非常脏的代码来证明这一点。

form1 有一个绑定到数据表的组合框,它还有一个按钮来调用名为 form2 的第二个表单。

form2 有一个按钮,可以将 2 行添加到 Datatable,然后返回到第一个屏幕。

代码形式 1:

Public Class Form1

    Private dataSet As New DataSet("DataSet1")
    Private dataTable As DataTable = dataSet.Tables.Add("DataTable1")

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

        dataTable.Columns.Add("Column1")

        Dim row1 As DataRow = dataTable.NewRow()
        row1("Column1") = "Data1"
        dataTable.Rows.Add(row1)
        Dim row2 As DataRow = dataTable.NewRow()
        row2("Column1") = "Data2"
        dataTable.Rows.Add(row2)


        ComboBox1.DataSource = dataTable
        ComboBox1.DisplayMember = "Column1"
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim form2 As New Form2(dataTable)
        form2.Show()
    End Sub

End Class

代码表格2:

Public Class Form2

    Private _dataTable As DataTable

    Public Sub New(ByVal dataTable As DataTable)
        InitializeComponent()
        _dataTable = dataTable
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        Dim row3 As DataRow = _dataTable.NewRow()
        row3("Column1") = "Data3"
        _dataTable.Rows.Add(row3)
        Dim row4 As DataRow = _dataTable.NewRow()
        row4("Column1") = "Data4"
        _dataTable.Rows.Add(row4)
        Me.Close()
    End Sub
End Class
于 2012-11-14T21:45:45.990 回答