お世話になります。
> 2つのリストボックスを使って一つのリストボックス(ListBox1)に並んでいるリストからselect する ともうひとつのリストボッ > クス(ListBox2)に順次並ぶようなコードを作りたいのですが、その場合、同じ項目を選んでもも う ひとつのリスト > ボックス(ListBox2)に並ばないようにしたいんですが
本当にやりたい事が、よく解っていませんが、こういう事でしょうか。 Private m_ht As Hashtable Private m_currentKey As String = String.Empty
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.m_ht = New Hashtable Me.m_ht.Add("a", New String() {"あああ1", "いいい1", " ううう1"}) Me.m_ht.Add("b", New String() {"あああ2", "いいい2", " ううう2"}) Me.m_ht.Add("c", New String() {"あああ3", "いいい3", " ううう3"}) Me.m_ht.Add("d", New String() {"あああ4", "いいい4", " ううう4"}) Me.m_ht.Add("e", New String() {"あああ5", "いいい5", " ううう5"}) Me.m_ht.Add("f", New String() {"あああ6", "いいい6", " ううう6"})
Me.ListBox1.Items.Clear() For Each key As String In Me.m_ht.Keys Me.ListBox1.Items.Add(key) Next End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles ListBox1.SelectedIndexChanged If Me.ListBox1.SelectedIndex < 0 Then Return Dim selectedKey As String = DirectCast(Me.ListBox1.Items(Me.ListBox1.SelectedIndex), String) If Me.m_currentKey = selectedKey Then Return Me.m_currentKey = selectedKey
Dim values() As String = DirectCast(Me.m_ht(selectedKey), String()) Me.ListBox2.Items.Clear() For Each value As String In values Me.ListBox2.Items.Add(value) Next End Sub
|