我有 2 个列表框,并且有控件可以将项目相互移动。当将一个条目从 listBox1 移动到 listBox2 时,会自动选择 listBox1 中的第一个条目 - 逻辑行为,因为被选中的项目不再在该 listBox 中已被移出。然而,如果用户想要添加连续的项目,因为他们不得不重新选择,这很烦人。
将项目从 listBox1 移动到 listBox2 的代码:
private void addSoftware()
{
try
{
if (listBox1.Items.Count > 0)
{
listBox2.Items.Add(listBox1.SelectedItem.ToString());
listBox1.Items.Remove(listBox1.SelectedItem);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
if (listBox1.Items.Count > 0)
listBox1.SelectedIndex = 0;
listBox2.SelectedIndex = listBox2.Items.Count - 1;
}
从逻辑上讲,我(想我)希望 listBox1 的 SelectedIndex 保持与单击“添加”按钮之前相同。实际上,我希望 listBox1 中的选定项目成为下一个项目。因此,如果用户移出第 4 项,则所选项目应该是新的第 4 项(以前是第 5 项,但现在是 4),如果这有意义的话。注释掉该行
listBox1.SelectedIndex = 0;
我试过添加这条线
listBox1.SelectedIndex = listBox1.SelectedIndex + 1;
将索引从原来的值增加 1,但这没有任何区别。