2016-07-21 4 views
1

Ich habe 2 Listbox auf verschiedenen TabPages, die die gleiche DatenquelleC# Listbox und tabpage

Grundsätzlich seine TabPage1 + ListBox1 verwendet und TabPage2 + ListBox2

Ich versuche, die folgendes zu tun:

Wenn I Artikel von ListBox1 auf TabPage1 wählen, möchte ich das gleiche Element auf TabPage2 zu ListBox2 ausgewählt

ich habe versucht, dieses:

listbox1.SelectedItem = listBox2.SelectedItem; 

auch dies:

string sitem = ""; 
sitem = listbox1.SelectedItem.ToString(); 
listbox2.SelectedItem = sitem 

nichts wie erwartet funktioniert, frage ich mich, wenn ihr möglich?

+0

Auf welchem ​​Fall versuchen Sie die selectedItem – Maverick

+2

in listBox1_SelectedIndexChanged – Sidav

+0

Beispiel Siehe für eine mögliche Lösung unten zu setzen: https://msdn.microsoft.com/en -us/library/system.windows.forms.listbox.selecteitem (v = vs.110) .aspx – PaulF

Antwort

1

Stellen Sie sicher, dass die RegisterkarteControl als public oder internal deklariert ist. wenn nicht, dann die TabControl aus privaten ändern

private System.Windows.Forms.TabControl tabControl1; 

public System.Windows.Forms.TabControl tabControl1; 

an Öffentlichkeit in den designer.cs Datei und dann

using (Form form = new Form()) 
{   
    form.listbox1.SelectedItem = form.listBox2.SelectedItem; 
} 
1

Schließlich habe ich es mit dem Beispiel von PaulF

hier ist mein Arbeits Code :

private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string sitem = listBox1.SelectedItem.ToString(); 
     int index = listBox2.FindString(sitem); 
     listBox2.SetSelected(index, true); 
    } 

also, wenn ich ein Element in listbox1 auswählen, wählen Sie es auch in listbox2

+0

Ich denke, ich hätte es als Antwort gepostet, aber wie ich Ich habe Sie nur auf die MS-Dokumentation verwiesen, die ich nur für einen Kommentar gehalten habe. – PaulF

0

Set SelectedIndex Eigenschaft listbox2:

listbox1.SelectedIndexChanged += delegate(object sndr, EventArgs args) 
{ 
    var lst = (ListBox) sndr; 
    listbox2.SelectedIndex = listbox2.Items.IndexOf(lst.SelectedItem); 
};