このページを確認してください。役立つかもしれません。
http://msdn.microsoft.com/en-us/library/w67sdsex.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1
そうでない場合:
コンボボックスのデータソースバインディングを「リセット」する場所にブレークポイントを配置した場合、コンボボックスに表示したい新しい値がデータソースに含まれているかどうかを確認してください。ばかげているように聞こえるかもしれませんが、よくある間違いです。この場合、バインディングに問題がないことがわかります。
また、データソースを何もせずにデータソースを再度追加した後、次のように、どの列が表示メンバーになるかを再度指定する必要があります。
ComboBox1.DisplayMember = "Column1"
ただし、私が言ったサイトを見ると、データソースを削除して再度追加するのではなく、バインドを一時停止して再開する方法を説明するメモを確認する必要があります。
ただし、データテーブルを使用している場合、値は自動的に変更されるはずであり、コンボボックスをドロップして再バインドする理由はありません。
--
再バインドする必要がないことを証明するために、それを証明するために非常に汚いコードをすぐに作成しました。
form1 には、データテーブルにバインドされたコンボボックスがあり、form2 という名前の 2 番目のフォームを呼び出すボタンもあります。
form2 には、Datatable に 2 行を追加してから最初の画面に戻るボタンがあります。
コード形式 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