0

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

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

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

感谢正手 Ricje20

- 编辑 -

我还没有完成 xD 我可以做到,以便我可以在(例如)以下代码中说 selectedListbox.SelectedIndex 或类似的东西吗?我需要将 listBox1 替换为“选定的列表框”为“选定的列表框”我的意思是选择项目的列表框

字符串 file2 = files2[listBox1.SelectedIndex];

4

2 回答 2

2

我将为两个列表框实现“SelectedItem_Changed”事件。然后使用全局布尔变量来区分是否已经选择了一个列表框的项目。如果已经选择了 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 条件

于 2013-06-18T10:18:56.717 回答
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; 
};

问候。

于 2013-06-18T10:40:44.537 回答