【问题标题】: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);
}
别忘了:
- 挂钩索引更改事件:
libHT.SelectedIndexChanged += libHT_SelectedIndexChanged;
- 正确设置选择模式
libHT.SelectionMode = libMonth.SelectionMode = SelectionMode.MultiExtended;
- 注意您的程序化选择,导致无限递归