投稿者 まりもん  (社会人) 投稿日時 2020/9/9 11:45:17
FormにComboBoxを2つ用意し、下記ソースのようにCombobox1の選択によってComboBox2のDataSourceを切り替えています。

Public Class Form1

    Dim d1 As Integer() = {1, 2, 3, 4, 5}
    Dim d2 As Integer() = {50, 40, 30, 20, 10}


    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ComboBox1.Items.Add("データ1")
        ComboBox1.Items.Add("データ2")
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
        If ComboBox1.SelectedIndex = 0 Then
            ComboBox2.DataSource = d1
        Else
            ComboBox2.DataSource = d2
        End If
    End Sub

    Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
        Console.WriteLine(ComboBox2.SelectedIndex)
    End Sub

End Class


この時、
ComboBox1でデータ1を選択し、ComboBox2の値「4」を選択
次にComboBox1でデータ2を選択し、ComboBox2の値「40」を選択、
再度ComboBox1でデータ1を選択した場合、最初に選んだComboBox2の項目「4」が自動で選択されます。

データソースが切り替わることにより選択状態もリセットされているというのが当方で考えていたことなのですが、実際の動作が異なります。

このようなデータソースを切り替えたときの選択状態の保持はDataGridViewでも確認しています。
このデータソースを切り替えたときの選択状態を保持しないようにするには何か方法があるのでしょうか?