-1

私はVB.Netが初めてで、何かについて少し混乱しています。2 つのリスト ボックスが必要で、それぞれに既に項目があります。最初のリスト ボックスには 4 つの項目があり、2 番目のリスト ボックスには 5 つの項目があります。配列に格納したい値のために、テキスト ボックスも追加しました。

たとえば、最初のテキスト ボックスの最初の値と 2 番目のテキスト ボックスの 2 番目の値を選択し、テキスト ボックスに「5」と入力すると、配列の (0,1) に 5 が格納されます。

次に、最初のリスト ボックスの各項目のすべての値を、2 番目の項目、3 番目の項目、4 番目の項目と同じようにラベルに表示したいと考えています。これにはループが必要だと思います。

配列を作成する方法と配列に値を格納する方法は知っていますが、リスト ボックスとテキスト ボックスを使用して配列を機能させる方法がわかりません。

4

1 に答える 1

1

次のコントロールを使用してフォームを作成しました。

ComboBox1  
ComboBox2  
Button1  
TextBox1  

Form_LoadイベントとButton1_Clickイベントにコードを追加し、両方のコンボボックスのインデックス変更を処理する単一のComboBox_SelectedIndexChangedイベントハンドラーを作成しました。

Public Class Form1
    Private _array(,) As String
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ReDim _array(0 To ComboBox1.Items.Count, 0 To ComboBox2.Items.Count)
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim c1 As Integer = If(ComboBox1.SelectedIndex = -1, 0, ComboBox1.SelectedIndex)
        Dim c2 As Integer = If(ComboBox2.SelectedIndex = -1, 0, ComboBox2.SelectedIndex)
        Debug.Print(String.Format("Set ({0},{1}) to {2}", c1, c2, TextBox1.Text))
        _array(c1, c2) = TextBox1.Text
    End Sub

    Private Sub ComboBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged, ComboBox2.SelectedIndexChanged
        Dim c1 As Integer = If(ComboBox1.SelectedIndex = -1, 0, ComboBox1.SelectedIndex)
        Dim c2 As Integer = If(ComboBox2.SelectedIndex = -1, 0, ComboBox2.SelectedIndex)
        Debug.Print(String.Format("Get ({0},{1}) to {2}", c1, c2, TextBox1.Text))
        TextBox1.Text = _array(c1, c2)
    End Sub
End Class

私が示しているのは、次のとおり
です。1.フォームが読み込まれると、コンボボックス内の要素の数に一致するように配列のサイズが変更されます。
2.データはイベント(この場合はボタンクリックイベント)で配列にロードされます。
3.いずれかのコンボボックスが変更されたときに、データを再度取得します。

お役に立てば幸いです。

于 2013-02-08T03:31:07.420 に答える