【问题标题】:c# Listbox and Tabpagec# 列表框和标签页
【发布时间】:2016-07-21 16:45:38
【问题描述】:

我在使用相同数据源的不同标签页上有 2 个列表框

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

我正在尝试执行以下操作:

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

我试过这个:

listbox1.SelectedItem = listBox2.SelectedItem;

还有这个:

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

没有按预期工作,我想知道它是否可能?

【问题讨论】:

  • 您尝试在哪个事件上设置 selectedItem
  • 在 listBox1_SelectedIndexChanged 中
  • 查看底部示例以获取可能的解决方案:msdn.microsoft.com/en-us/library/…
  • 很好,这正是我想要的:)

标签: c# listbox tabpage


【解决方案1】:

最后我用 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 中选择它

【讨论】:

  • 我想我应该将其发布为答案,但由于我只是将您引导至 MS 文档,因此我只觉得值得发表评论。
【解决方案2】:

确保将 tabControl 声明为 publicinternal。如果没有,则在 Designer.cs 文件中将 tabControl 从私有更改为公共

private System.Windows.Forms.TabControl tabControl1;

public System.Windows.Forms.TabControl tabControl1;

然后

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

【讨论】:

    【解决方案3】:

    设置listbox2SelectedIndex属性:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多