2016-07-21 3 views
1

У меня есть 2 Listbox на разных tabpages, который использует один и тот же источник данныхC# Listbox и TabPage

В основном его tabpage1 + listbox1 и tabpage2 + listbox2

Я пытаюсь сделать следующее:

Когда Я выбираю пункт из ListBox1 на tabpage1, я хочу тот же элемент, выбранный в listbox2 на tabpage2

Я попытался это:

listbox1.SelectedItem = listBox2.SelectedItem; 

также это:

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

ничего не работает, как ожидалось, мне интересно, если его можно?

+0

На какое событие вы пытаетесь установить SelectedItem – Maverick

+2

в listBox1_SelectedIndexChanged – Sidav

+0

Смотрите пример в нижней части для возможного решения: https://msdn.microsoft.com/en -us/library/system.windows.forms.listbox.selecteditem (v = vs.110) .aspx – PaulF

ответ

1

Убедитесь, что tabControl объявлен как public или internal. если нет, то изменить TabControl от частного к общественности в designer.cs файл

private System.Windows.Forms.TabControl tabControl1; 

public System.Windows.Forms.TabControl tabControl1; 

и затем

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

Наконец я сделал это на примере PaulF

вот мой рабочий код :

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

поэтому, когда я выбираю элемент в спискеbox1, он также выбирает его в listbox2

+0

Думаю, я должен был разместить это как ответ, но поскольку я просто направлял вас на документацию по MS, я только считал, что стоит комментарий. – PaulF

0

Set SelectedIndex свойство listbox2:

listbox1.SelectedIndexChanged += delegate(object sndr, EventArgs args) 
{ 
    var lst = (ListBox) sndr; 
    listbox2.SelectedIndex = listbox2.Items.IndexOf(lst.SelectedItem); 
}; 
Смежные вопросы