2014-03-26 91 views
-1

我試圖填充列表框中的項目,我已經聲明瞭一個數組和指定的字符串,它擁有,但即時通訊不知道如果我甚至做到了這一點,我想用字符串在數組中填充列表框,這裏是我已經完成的代碼,我該怎麼做,任何人都可以給我代碼,我可以使用這些字符串填充列表框。如何填充列表框中的數組項目2

Dim NewDefinition As String 

NewDefinition = InputBox(" Please enter definition in the box and click OK. " & " The definition entered will be added to the list. ", " Add Definition") 

lstDefinitions.Items.Add(NewDefinition) 

Dim NewDefinition1 As String = lstDefinitions.Items(0).ToString 
Dim NewDefinition2 As String = lstDefinitions.Items(1).ToString 
Dim NewDefinition3 As String = lstDefinitions.Items(2).ToString 
Dim NewDefinition4 As String = lstDefinitions.Items(3).ToString 
Dim NewDefinition5 As String = lstDefinitions.Items(4).ToString 
Dim NewDefinition6 As String = lstDefinitions.Items(5).ToString 
Dim NewDefinition7 As String = lstDefinitions.Items(6).ToString 
Dim NewDefinition8 As String = lstDefinitions.Items(7).ToString 
Dim NewDefinition9 As String = lstDefinitions.Items(8).ToString 
Dim NewDefinition10 As String = lstDefinitions.Items(9).ToString 

Dim NewDefinitions(10) As String 
NewDefinitions(0) = NewDefinition1 
NewDefinitions(1) = NewDefinition2 
NewDefinitions(2) = NewDefinition3 
NewDefinitions(3) = NewDefinition4 
NewDefinitions(4) = NewDefinition5 
NewDefinitions(5) = NewDefinition6 
NewDefinitions(6) = NewDefinition7 
NewDefinitions(7) = NewDefinition8 
NewDefinitions(8) = NewDefinition9 
NewDefinitions(9) = NewDefinition10 

Intially我想使它工作所以在我的節目一個表格上的一個列表框,有人爲輸入使用的輸入框10名的文本,然後他進入每一個文本是一個可變的字符串,這些字符串會分配到一個數組和這個數組是用來填充另一個表單上的另一個列表框,我雖然會更容易,我有非常有限的知識陣列,我必須承認,我想我讓它更清晰

+0

你幾乎可以肯定地完成了第一部分的錯誤。但是,正如你第一次問這個問題一樣,我仍然對你想要完成什麼感到困惑,所以我甚至不知道從哪裏開始幫助你。如果你可以用簡單明瞭的術語來解釋你想達到的目的(而不是你爲了達到目標而需要做的事情),那麼我認爲這對解決困惑將會有很大的幫助。目前你的示例代碼並沒有什麼意義,所以它並沒有真正幫助你解釋你想要實現的。 –

+0

是啊,這就是爲什麼即時消息發佈我只是有一個去它即時通訊壞數組,我想要做的是有一個表單上的另一個表單上的另一個列表框,我想要它時,有人輸入10個字(定義)添加到第一個列表框中,當添加到保存某處時,所以當有人單擊另一個表單上的按鈕來填充另一個列表框並在第一個列表框中輸入10個單詞時。我認爲我現在更清楚@StevenDoggart – user3459587

+0

「保存在某處」,你的意思是在記憶中嗎?或者你的意思是你想寫到磁盤或類似的東西? –

回答

0

As Steven Doggart說,你可能會以這種錯誤的方式進行。第一部分應該看起來像這樣:

For i As Integer = 1 To 10 Step 1 
    Dim newDefinition As String = InputBox(" Please enter definition in the box and click OK. The definition entered will be added to the list.", " Add Definition") 

    lstDefinitions.Items.Add(NewDefinition) 
Next 

這假定你總是希望用戶輸入10個項目。完成這些後,你就可以做任何你想要處理的事情。

Dim newDefinitions As IEnumerable(Of String) = (From item In lstDefinitions.Items 
               Select item.ToString()) 

For Each newDef As String in newDefinitions 
    ' Do something with each string here 
    Console.Writeline(newDef) 
    ' I wrote to Console, but you can add them to another listbox or whatever. 
Next 
+0

在你的例子中,在LINQ查詢中確實沒有任何意義,因爲你可以只用'對於每個newDef作爲lstDefinitions.Items中的字符串',因爲你知道它們將是字符串。或者,您可以將迭代器更改爲'newDef As Object'和'Console.Writeline(newDef.ToString())',而不是先將它們全部轉換爲新列表。這對我來說似乎更簡單,尤其對於初學者來說。 –

+0

@StevenDoggart好點。有時我可以得到一點LINQ-快樂。 –

0

你介紹的就是補充說,通過InputBox進入一個ListBox項目的第一步。這可以通過調用ListBoxAdd方法,這樣來完成:

Dim NewDefinition As String 
NewDefinition = InputBox(" Please enter definition in the box and click OK. " & " The definition entered will be added to the list. ", " Add Definition") 
lstDefinitions.Items.Add(NewDefinition) 

然而,這只是增加了一個項目。如果您希望它們添加多個,則需要將該代碼放入單獨的事件處理程序中,例如「添加定義」按鈕的Click事件。如果你想迫使他們按順序將它們添加固定數量的,你也可以使用一個循環,例如:

For i As Integer = 0 to 9 
    Dim NewDefinition As String 
    NewDefinition = InputBox(" Please enter definition in the box and click OK. " & " The definition entered will be added to the list. ", " Add Definition") 
    lstDefinitions.Items.Add(NewDefinition) 
Next 

一旦你把所有的項目在ListBox,閱讀完所有的項目出來的它將它們存儲在一個數組中相當容易。你可以使用LINQ做,像這樣:

Dim items() As String = lstDefinitions.Items.OfType(Of String).ToArray() 

或者你可以使用一個循環,這樣的:

Dim items(lstDefinitions.Items.Count - 1) As String ' Create the array with the correct size 
For i As Integer = 0 To lstDefinitions.Items.Count ' Loop through all of the items in the list box 
    items(i) = lstDefinitions.Items(i).ToString() ' Add the current item to the array 
Next 

一旦你的陣列,它很容易將它們添加到第二ListBox ,像這樣:

ListBox2.Items.AddRange(items) 
+0

我不知道爲什麼,但我得到System.NullReferenceException錯誤,當我調試程序,並試着打開窗體,我寫這個代碼 – user3459587

+0

在哪一行?您可以使用調試器遍歷代碼並檢查變量以查看哪個變量爲null('Nothing')。 –

相關問題