Benutzer mit den meisten Antworten
Problem bei der Übertragung von ListBox-Items in eine Combobox

Frage
-
Einen Guten Tag Euch,
Ich habe folgendes Problem:
Ich habe vor alle Elemente einer ListBox in eine ComboBox zu übertragen, allerdings entsteht dieser Fehler bei der Laufzeit:
Die ListBox-Items erscheinen doppelt in der ComboBox!
Ich verwende folgenden Code:
Function liste() Dim alle_elemente As String = Nothing For Each elemente In ListBox1.Items alle_elemente += elemente.ToString + "!" Next Return alle_elemente End Function
und zum Einfügen:
For Each v In liste.ToString.Split("!") If v = Nothing Then Else ComboBox1.Items.Add(v) End If Next
In anderen Übertragungen (z.B. ListBox-Einträge -> DataGridView-Spalten) funktioniert dieser Code fehlerfrei...
Was ist falsch, wie geht's richtig?
Danke schoneinmal!
- Bearbeitet Dreieck-Project Montag, 16. September 2013 14:08 vb-layout
Antworten
-
Hallo,
also bei mir funktioniert dein Code. Du kannst ja mal mittels F11 (Einzelschritt) durch den Code debuggen um zu sehen ob irgendetwas doppelt o.ä. ausgeführt wird. Was steht denn im Ergebnis von liste()?Allgemein würde ich es aber anders lösen, indem ich mit einer List(Of T) arbeite. Vor dem befüllen der ComboBox solltest dudiese vielleicht auch noch wieder entleeren, falls die Items mehrefach übertragen werden.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ComboBox1.Items.Clear() For Each v In liste() If v = Nothing Then Else ComboBox1.Items.Add(v) End If Next End Sub Function liste() As List(Of String) Dim alle_elemente As New List(Of String) For Each elemente In ListBox1.Items alle_elemente.Add(elemente.ToString) Next Return alle_elemente End Function
außerdem Option Strict On, aber das ist nur eine Empfehlung.
<Code-13/>- Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite | Code Beispiele | Facebook | Twitter | Snippets C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort markiert Dreieck-Project Montag, 16. September 2013 14:55
Alle Antworten
-
Hallo,
also bei mir funktioniert dein Code. Du kannst ja mal mittels F11 (Einzelschritt) durch den Code debuggen um zu sehen ob irgendetwas doppelt o.ä. ausgeführt wird. Was steht denn im Ergebnis von liste()?Allgemein würde ich es aber anders lösen, indem ich mit einer List(Of T) arbeite. Vor dem befüllen der ComboBox solltest dudiese vielleicht auch noch wieder entleeren, falls die Items mehrefach übertragen werden.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ComboBox1.Items.Clear() For Each v In liste() If v = Nothing Then Else ComboBox1.Items.Add(v) End If Next End Sub Function liste() As List(Of String) Dim alle_elemente As New List(Of String) For Each elemente In ListBox1.Items alle_elemente.Add(elemente.ToString) Next Return alle_elemente End Function
außerdem Option Strict On, aber das ist nur eine Empfehlung.
<Code-13/>- Koopakiller [kuːpakɪllɐ] (Tom Lambert)
Webseite | Code Beispiele | Facebook | Twitter | Snippets C# ↔ VB.NET Konverter
Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.- Als Antwort markiert Dreieck-Project Montag, 16. September 2013 14:55