【问题标题】:Listbox selection "synced"列表框选择“同步”
【发布时间】:2013-06-18 10:08:12
【问题描述】:

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

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

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

感谢正手 Ricje20

--编辑--

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

string file2 = files2[listBox1.SelectedIndex];

【问题讨论】:

    标签: c# listbox selection sync


    【解决方案1】:

    我将为两个列表框实现“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 条件

    【讨论】:

      【解决方案2】:
      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; 
      };
      

      问候。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-27
        • 2023-03-27
        • 2021-12-18
        • 1970-01-01
        • 2011-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多