您應該檢查這個頁面,也許它會幫助你:
http://msdn.microsoft.com/en-us/library/w67sdsex.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
萬一事與願違:
,如果你把你的斷點,你「復位」組合框的數據源綁定,檢查數據源是否包含您想在組合框中看到的新值。它可能聽起來很愚蠢,但它經常發生一個錯誤,如果是這種情況,你知道問題不在於綁定。
同樣在沒有數據源的情況下再次添加數據源,你應該這樣做再告訴哪一列將是將displayMember像這樣:
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
的WinForms或WebForms的? –
嘿,對不起。這是winforms。 –