首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在两个ListBoxes之间同步选择索引

如何在两个ListBoxes之间同步选择索引
EN

Stack Overflow用户
提问于 2015-08-07 23:49:56
回答 4查看 1.3K关注 0票数 0

我有两个列表框: listBox1,listBox2。

如果在第一个listBox1中选择项,则必须在listBox2中自动选择相同索引的项。因此,如果我在listbox1中选择项目1,那么在listbox2中自动选择项目1等等。

不是:我找到了一些例子,但没有用。

代码语言:javascript
运行
复制
private void listBoxControl2_SelectedIndexChanged(object sender, EventArgs e) 
{ listBoxControl5.SelectedIndex = listBoxControl2.SelectedIndex; }

编辑:

我在This answer事件中使用SelectedValueChanged事件中选择的索引代码解决了这个问题。

代码语言:javascript
运行
复制
private void listBoxControl2_SelectedValueChanged(object sender, EventArgs e)
    {
        listBoxControl5.SelectedIndex = listBoxControl2.SelectedIndex;
    }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-08 00:26:09

下面是您可能想进一步探索的示例,尝试将ListBox添加到您的表单中(在本示例3个列表框中),它应该如下所示:

下面是一个源,每当您单击上面的某个项目时,都会选择相同的索引:

代码语言:javascript
运行
复制
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        InitializeListBoxes();
    }

    private void InitializeListBoxes()
    {
        //Populate listboxes
        listBox1.Items.Add("Apple");
        listBox1.Items.Add("Orange");
        listBox1.Items.Add("Mango");

        listBox2.Items.Add("Milk");
        listBox2.Items.Add("Cheese");
        listBox2.Items.Add("Butter");

        listBox3.Items.Add("Coffee");
        listBox3.Items.Add("Cream");
        listBox3.Items.Add("Sugar");

        //Subscribe to same events
        listBox1.SelectedIndexChanged += listBox_SelectedIndexChanged;
        listBox2.SelectedIndexChanged += listBox_SelectedIndexChanged;
        listBox3.SelectedIndexChanged += listBox_SelectedIndexChanged;
    }

    void listBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        ListBox listBox = (ListBox)sender;
        listBox1.SelectedIndex = listBox.SelectedIndex;
        listBox2.SelectedIndex = listBox.SelectedIndex;
        listBox3.SelectedIndex = listBox.SelectedIndex;
    }
}

所发生的事情是在您订阅同一个事件的InitializeListBoxes上触发SelectedIndexChanged事件,并从每个ListBox中选择适当的项。

票数 1
EN

Stack Overflow用户

发布于 2015-08-07 23:58:27

要解决问题,可以使用一个名为观察者的模式:https://msdn.microsoft.com/en-us/library/ee850490(v=vs.110).aspx

基本上,您必须在要通知的列表框中创建一个通知程序方法。在listBox1中选择项时,将调用listBox2的通知程序方法。

票数 0
EN

Stack Overflow用户

发布于 2015-08-08 00:24:40

我在This answer事件中使用SelectedValueChanged事件中选择的索引代码解决了这个问题。

代码语言:javascript
运行
复制
private void listBoxControl2_SelectedValueChanged(object sender, EventArgs e)
    {
        listBoxControl5.SelectedIndex = listBoxControl2.SelectedIndex;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31888142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档