0

所以下面的代码有一个明显的错误,当用户改变两个列表框之间的选择时,它们都会被清除。在 listbox2 中选择一个项目同时取消选择 listbox1 中的项目的最佳方法是什么,反之亦然。

    private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
     listbox2.ClearSelected()
    }

    private void listBox2_SelectedIndexChanged(object sender, System.EventArgs e)
    {
     listbox1.ClearSelected()
    }

我很想声称只是要求一个朋友,但我似乎无法弄清楚这个简单的...

为澄清起见,当我从 listbox1 中选择一个项目时,代码确实有效,然后未选择 listbox2。问题是 listbox2 立即更改,从刚刚单击的 listbox1 中取消选择项目

4

1 回答 1

0

修改这两个函数如下:

private void listBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
  if (bChanging) return;
  bChanging = true;
  listbox2.ClearSelected();
  bChanging = false;
} 

bChanging是表格的成员。
这个或类似的构造应该可以工作。

于 2015-08-06T12:14:42.563 回答