列表框选择“同步”

时间:2013-06-18 10:08:13

标签: c# listbox selection sync

我抓住了关于列表框“选择”的问题 我已经搜索了一些关于这个主题但我没有找到我正在寻找的答案。 我是OO编程,我希望使用尽可能少的代码,因此它必须是一个“不大”的代码。

我有2个列表框,当我在任何列表框中选择一个项目时,先前选择的项目必须取消选中。 所以我只能有1个选择,当我在列表框1中选择某个,然后在列表框2中进行某些选择后,它必须“取消选择”listbox1,所以我希望选择“同步”彼此。

我希望我很清楚,问我是否需要更多信息:)

感谢正手 Ricje20

- 编辑 -

我还没有完成xD 我可以这样做,以便我可以说(例如)以下代码 selectedListbox.SelectedIndex还是那样? 我需要将listBox1替换为“所选列表框” “选定的列表框”是指选择项目的列表框

string file2 = files2 [listBox1.SelectedIndex];

2 个答案:

答案 0 :(得分:2)

我会为Listbox实现“SelectedItem_Changed”事件。然后使用全局bool变量来区分是否已经选择了一个列表框的项目。如果已经选择了listbox1的项目,我将清除listBox1中的选择,然后从listBox2中选择项目。

修改

private bool itemSelected = false;

private void listBox1_SelectedItemChanged(object sender, EventArg e)
{
    if(itemSelected == false)
    {
        // select the item of listBox1
        itemSelected = true;
    }
    else
    {
        // Clear items of listBox2
        itemSelected = false;
    }
}

private void listBox2_SelectedItemChanged(object sender, EventArg e)
{
    if(itemSelected == false)
    {
         // select the item of listBox2
         itemSelected = true;
    }
    else
    {
          // Clear items of listBox1
          itemSelected = false;
    }
}

此代码根本未经过测试。所以你可能会修一下if-else条件

答案 1 :(得分:0)

listBox1.DataSource = new string[] { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE" };
listBox2.DataSource = new string[] { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE" };

// inline event handlers
listBox1.Click += (s,e)=>{
 listBox2.SelectedIndex = -1; 
};

listBox2.Click += (s,e) =>
{
 listBox1.SelectedIndex = -1; 
};

问候。