2017-10-30 23 views
0

私は単純なアプリケーションを作成しようとしています。 2つのリストボックスがありますが、どちらのリストもほぼ同じです。だから私のコードでは、どちらのリストボックスでも同じコードを簡単に実行できるようにしたい。Visual Basic .net、オブジェクトへの参照を作成します。

VB6では、両方のコントロールを同じ名前にして、それらにインデックスを割り当てても問題ありません。 VB.net 2008では、これは不可能なようです。

私が理想的に望むのは、リストボックスのいずれかに割り当てることができる変数をプログラムの中に作成し、残りのコードの間に、この新しい変数を使用して、リストボックスを制御します。ここで

は例です:

Private Sub lVegetables_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lVegetables.Click 
    ListToEditor(0, lVegetables.SelectedIndex) 

End Sub 


Private Sub lFruits_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lFruits.Click 
    ListToEditor(1, lFruits.SelectedIndex) 
End Sub 

Private Sub ListToEditor(ByVal iList, ByVal iIndex) 

    Select Case iList 
     Case 0 
      Dim lList As lVegetables 
     Case 1 
      Dim lList as lFruits 
    End Select 

    tEditor.text = iList.item(iIndex) 



End Sub 

は、私はその場でリストボックスに参照するために別の変数を使用することができ、またはそれらが同じ名前を持っているので、私は彼らにインデックスを割り当てることができる方法はありますか?あなたは、両方のリストボックスに同じハンドラを使用して送信者をキャストすることができ

+0

あなたのコードはでかなりの数のエラーを持って何が悪いです。マジックナンバーインデックスの代わりにリスト自体を渡していますか? –

+0

適切なタイプのフォームレベルスコープを持つ変数を作成しますが、それらは2つの異なるタイプのようです。 'Option Strict On'は、特にグローバル変数で遊ぶ場合に設定してください。 – Plutonix

+0

他のオブジェクトを参照する変数を持つことができます。私はあなたがやろうとしていることを具体的に提供されたコードから私には分かりません。 'ListToEditor'のパラメータに型を持たせるべきですか? 'Dim List as lVegetables'とは何ですか?変数を宣言しているだけで、何にも使われていません。 'lVegetables'は本当に型ですか、それとも変数ですか?あなたがここでやろうとしていることは私には分かりません。 – David

答えて

5

Sub ListBox_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lVegetables.Click, lFruits.Click 
    Dim lb = DirectCast(sender, ListBox) 
    ListToEditor(lb, lb.SelectedIndex) 
End Sub 

Private Sub ListToEditor(lb As ListBox, index as Int32) 
    tEditor.text = lb.Items(index).ToString() 
End Sub 

全体のコードは、のように簡略化することができます

Sub ListBox_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lVegetables.Click, lFruits.Click 
    Dim lb = DirectCast(sender, ListBox) 
    If lb.SelectedIndex >= 0 Then tEditor.Text = lb.SelectedItem.ToString() 
End Sub 
+1

すごく、これはまさに私が探していたものでした。 – LPChip

関連する問題