2015-12-15 112 views
1

我正在使用vb.net窗體。如何將3個列表框項添加到一個列表框中

我有3個列表框每一個包含很多項目(ListBox1中,listbox2,listbox3) 和另一個空列表框(listbox4) 我嘗試前三個列表框項添加到第四列表框中

例如:第一)ListBox1中項目是'A',listbox2第一項是'b',listbox3第一項是'c' 現在listbox4第一項必須是「Abc」

問題是我沒有工作,但保持循環的項目。 這裏是我的代碼:

For i = 1 To ListBox1.Items.Count - 1 

     For j = i To ListBox2.Items.Count - 1 

      For k = j To ListBox3.Items.Count - 1 

       ListBox4.Items.Add(ListBox1.Items(j).ToString + ListBox2.Items(j).ToString + ListBox3.Items(k).ToString) 

       Exit For 
      Next 
     Next 
    Next 

回答

1

你嵌套環。這意味着內環在外環的每個環路處重複。例如。如果三個列表框具有3,4和6個元素,則最內部的循環將循環3 x 4 x 6 = 72次!

反而使只有一個循環:

Dim n As Integer = _ 
    Math.Min(ListBox1.Items.Count, Math.Min(ListBox2.Items.Count, ListBox3.Items.Count)) 

For i As Integer = 0 To n - 1 
    ListBox4.Items.Add(_ 
     ListBox1.Items(i).ToString + _ 
     ListBox2.Items(i).ToString + _ 
     ListBox3.Items(i).ToString) 
Next 
+0

非常感謝你。它的工作 – bod

+0

先生,我可以問你,如果我想添加超過3列表框到1列表框,例如5或6列表框到1列表框?非常感謝@Oliver Jacot-descombes – bod

+0

我不太明白問題出在哪裏。如何擴展更多列表框的例子似乎是非常明顯和直接的。如果您知道列表框中的項目數完全相同,則不需要「Math.Min」部分。這隻需要所有列表框的最小數量,以防計數不同。取而代之的是從一個列表框中取數:'Dim n As Integer = ListBox1.Items.Count'。 –

相關問題