你应该检查这个页面,也许它会帮助你:
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