0

データベースからロードされたがバインドされていない3つのコンボボックスがあり、データは異なりますがインデックスは同じです。
それらはすべて次のように設定されています。

 ComboBox1.AutoCompleteMode = AutoCompleteMode.Suggest
 ComboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource
 ComboBox1.AutoCompleteCustomSource = mycolumn1
 ComboBox1.DropDownStyle = DropDownList

1 つのコンボでアイテムを選択すると、他の 2 つのアイテムが同じインデックスのアイテムを選択するという機能を取得したいと考えています。まず、そこからインデックスを取得することを期待していたときに、イベント _SelectedIndexChanged がトリガーされないことに非常に驚いています。

これはなぜですか? また、目的の機能を取得するにはどうすればよいですか?

4

1 に答える 1

1

あなたの状況であなたを助けるためのコードが投稿されていないため、あなたの問題は部分的にわかりません. これは私があなたのために作った例です。これは簡単ですが、うまくいきます。実際には 1 つの手順でこれを行うことができますが、これは、これがどのように機能するかを理解できるようにするためです。

    Public Class Form1

'Always give variable a default value'
Private selectedIndex As Integer = 0

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    Dim myArray() As String = {"1", "2", "3"}
    ComboBox1.Items.AddRange(myArray)
    ComboBox2.Items.AddRange(myArray)
    ComboBox3.Items.AddRange(myArray)
End Sub

'Handles one of your comboboxes'
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    'Cast this as Integer for selected index and set your variable'
    selectedIndex = CType(ComboBox1.SelectedIndex.ToString, Integer)

    'Next lets make sure that we set the other comboboxes to this index'
    ComboBox2.SelectedIndex = selectedIndex
    ComboBox3.SelectedIndex = selectedIndex
End Sub

'Another one of your comboboxes'
Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
    'Cast this as Integer for selected index and set your variable'
    selectedIndex = CType(ComboBox2.SelectedIndex.ToString, Integer)

    'Next lets make sure that we set the other comboboxes to this index'
    ComboBox1.SelectedIndex = selectedIndex
    ComboBox3.SelectedIndex = selectedIndex
End Sub

'Your last combobox'
Private Sub ComboBox3_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ComboBox3.SelectedIndexChanged
    'Cast this as Integer for selected index and set your variable'
    selectedIndex = CType(ComboBox3.SelectedIndex.ToString, Integer)

    'Next lets make sure that we set the other comboboxes to this index'
    ComboBox1.SelectedIndex = selectedIndex
    ComboBox2.SelectedIndex = selectedIndex
End Sub
    End Class

*グローバル変数を一番上に追加して、現在のコンボボックスの選択されたインデックスを保持するために使用できるようにする必要があります。これを参照として使用したため、load イベントを無視することもできます。

ありがとう!

于 2013-01-07T05:32:10.113 に答える