【问题标题】:Sync. SelectedIndex of two multiselect Listboxes同步。两个多选列表框的 SelectedIndex
【发布时间】:2017-12-27 15:39:23
【问题描述】:

我很难同步。两个多选列表框的 selectedIndexs。 启用单选后,代码就是:

 private void libHT_SelectedIndexChanged(object sender, EventArgs e)
    {
        libMonth.SelectedIndex = libHT.SelectedIndex;
    }

但如果启用了多选,这将不起作用。 你能帮助我吗?我必须使用 for 还是 foreach?

感谢您的帮助。 托马斯

【问题讨论】:

    标签: c# listbox multi-select


    【解决方案1】:

    有SelectedIndices 属性。

    private void libHT_SelectedIndexChanged(object sender, EventArgs e)
    {
            libMonth.SelectedIndices.Clear();
            foreach (var index in libHT.SelectedIndices.Cast<int>())
            {
                libMonth.SelectedIndices.Add(index);
            }
    }
    

    试试看

    【讨论】:

      【解决方案2】:

      是的,您必须遍历所有选择。像下面这样的代码可以帮助你

      private void libHT_SelectedIndexChanged(object sender, EventArgs e) {
          libMonth.SelectedIndices.Clear();
          foreach (int indx in libHT.SelectedIndices)
              libMonth.SelectedIndices.Add(indx);
      }
      

      别忘了:

      1. 挂钩索引更改事件:libHT.SelectedIndexChanged += libHT_SelectedIndexChanged;
      2. 正确设置选择模式libHT.SelectionMode = libMonth.SelectionMode = SelectionMode.MultiExtended;
      3. 注意您的程序化选择,导致无限递归

      【讨论】:

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