Also habe ich über Browsing und es gibt eine Menge Erklärungen, wie Sie Daten von Listbox zu Listbox verschieben. Ich habe eine Listbox an eine Quelle von meinem SQL Server gebunden und eine weitere ungebunden. Mein Ziel ist es, die Daten von der ersten (LBsearch)
auf die zweite (LBselect)
und zurück zu verschieben. Ich habe gesehen, dass Leute sagen, verwenden Sie LBselect.Items.Add(LBsearch.SelectedItem)
, aber es gibt keine Daten zurück und zeigt stattdessen System.Data.DataRowView
. Ich habe viele verschiedene Suffixe ausprobiert und alle zeigen dies abgesehen von LBsearch.text
. Dann, um die Daten von der ersten zu entfernen, habe ich die Datenquelle (PersonBindingSource)
mit PersonBindingSource.Remove(LBsearch.SelectedItem)
entfernt, aber mein Problem ist das Hinzufügen der Daten wieder zurück.Verschieben von Daten von Databound Listbox zu Unbound Listbox und Zurück VB.NET
PersonBindingSource.Add(LBselect.SelectedItem)
gibt einen Fehler:
System.ArgumentException: Cannot add external objects to this list.
at System.Data.DataView.System.Collections.IList.Add(Object value)
at System.Windows.Forms.BindingSource.Add(Object value)
at Project_Program.Participants.btnremoveselect_Click(Object sender, EventArgs e) in E:\Documents\Visual Studio\Project Program\Project Program\Participants.vb:line 38
Jede mögliche Hilfe würde geschätzt:
System.InvalidOperationException: Objects added to a BindingSource's list must all be of the same type.
at System.Windows.Forms.BindingSource.Add(Object value)
at Project_Program.Participants.btnremoveselect_Click(Object sender, EventArgs e) in E:\Documents\Visual Studio\Project Program\Project Program\Participants.vb:line 39
PersonBindingSource.Add(PersonBindingSource.Item(LBsearch.SelectedIndex))
einen Fehler gibt. Dank
Private Sub btnaddselect_Click(sender As Object, e As EventArgs) Handles btnaddselect.Click
If LBsearch.Items.Count > 0 Then
MsgBox(LBsearch.Text)
' PersonBindingSource.Remove(PersonBindingSource.Item(LBsearch.SelectedIndex))
LBselect.Items.Add(LBsearch.Text)
PersonBindingSource.Remove(LBsearch.SelectedItem)
' filter()
End If
End Sub
Private Sub btnremoveselect_Click(sender As Object, e As EventArgs) Handles btnremoveselect.Click
If LBselect.Items.Count > 0 Then
Try
'PersonBindingSource.Add(PersonBindingSource.Item(LBsearch.SelectedIndex))
PersonBindingSource.Add(LBselect.SelectedItem)
MsgBox(LBselect.SelectedItem.ToString())
LBselect.Items.Remove(LBselect.SelectedItem)
Catch ex As Exception
TextBox1.Text = (ex.ToString)
End Try
'filter()
End If
End Sub
Der eine, der gebunden ist, hat db-Zeilen durch ein DataView "zugeordnet". Wenn Sie ValueMember festgelegt haben, gibt Ihnen der SelectedValue im ValueChanged-Ereignis diese Zeile. Ich weiß nicht, was du auf die andere LB setzen willst; Wenn Sie die Zeile hinzufügen möchten, legen Sie die Eigenschaften DisplayMember und ValueNenber fest, oder zeigen Sie den Text an, holen Sie ihn aus dem SelectedValue - umwandeln Sie ihn in eine DataRow und erhalten Sie das gewünschte Feld – Plutonix
Mögliches Duplikat von [Wie man ein mobiles Gerät erkennt Javascript?] (http://stackoverflow.com/questions/6666907/how-to-detect-a-mobile-device-with-javascript) –