同步。 SelectedIndex的两个多选列表框

时间:2017-07-21 14:24:40

标签: c# listbox multi-select

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

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

但如果启用了多选,则此功能无效。 你能帮助我吗?我是否必须使用for或foreach?

感谢您的帮助。 托马斯

2 个答案:

答案 0 :(得分: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);
        }
}

试试

答案 1 :(得分:0)

是的,你必须循环所有的选择。下面的代码可以帮助您

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. 注意您的程序化选择,导致无限递归