C# c列表框和选项卡页

C# c列表框和选项卡页,c#,listbox,tabpage,C#,Listbox,Tabpage,我在使用相同数据源的不同选项卡页上有2个Listbox 基本上是它的tabpage1+listbox1和tabpage2+listbox2 我正在努力做到以下几点: 当我从tabpage1上的listbox1中选择项目时,我希望将相同的项目选择到tabpage2上的listbox2 我试过这个: listbox1.SelectedItem = listBox2.SelectedItem; 还包括: string sitem = ""; sitem = listbox1.SelectedItem

我在使用相同数据源的不同选项卡页上有2个Listbox

基本上是它的tabpage1+listbox1和tabpage2+listbox2

我正在努力做到以下几点:

当我从tabpage1上的listbox1中选择项目时,我希望将相同的项目选择到tabpage2上的listbox2

我试过这个:

listbox1.SelectedItem = listBox2.SelectedItem;
还包括:

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

没有任何东西能按预期工作,我想知道这是否可能?

确保tabControl声明为public或internal。如果没有,则在designer.cs文件中将tabControl从private更改为public

private System.Windows.Forms.TabControl tabControl1;

public System.Windows.Forms.TabControl tabControl1;
然后

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

最后,我以PaulF为例进行了说明

这是我的工作代码:

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string sitem = listBox1.SelectedItem.ToString();
        int index = listBox2.FindString(sitem);
        listBox2.SetSelected(index, true);
    }
因此,当我在listbox1中选择项时,它也会在listbox2中选择它

设置listbox2的SelectedIndex属性:


在哪个事件中,您试图设置selectedItemin listBox1_SelectedIndexChangedSee示例以获取可能的解决方案:很好,这正是我想要的:我想我应该把它作为一个答案发布,但由于我只是引导您访问MS文档,我觉得它只值得一提。
listbox1.SelectedIndexChanged += delegate(object sndr, EventArgs args)
{
    var lst = (ListBox) sndr;
    listbox2.SelectedIndex = listbox2.Items.IndexOf(lst.SelectedItem);
};