我抓住了关于列表框“选择”的问题 我已经搜索了一些关于这个主题但我没有找到我正在寻找的答案。 我是OO编程,我希望使用尽可能少的代码,因此它必须是一个“不大”的代码。
我有2个列表框,当我在任何列表框中选择一个项目时,先前选择的项目必须取消选中。 所以我只能有1个选择,当我在列表框1中选择某个,然后在列表框2中进行某些选择后,它必须“取消选择”listbox1,所以我希望选择“同步”彼此。
我希望我很清楚,问我是否需要更多信息:)
感谢正手 Ricje20
- 编辑 -
我还没有完成xD 我可以这样做,以便我可以说(例如)以下代码 selectedListbox.SelectedIndex还是那样? 我需要将listBox1替换为“所选列表框” “选定的列表框”是指选择项目的列表框
string file2 = files2 [listBox1.SelectedIndex];
答案 0 :(得分:2)
我会为Listbox实现“SelectedItem_Changed”事件。然后使用全局bool变量来区分是否已经选择了一个列表框的项目。如果已经选择了listbox1的项目,我将清除listBox1中的选择,然后从listBox2中选择项目。
修改强>
private bool itemSelected = false;
private void listBox1_SelectedItemChanged(object sender, EventArg e)
{
if(itemSelected == false)
{
// select the item of listBox1
itemSelected = true;
}
else
{
// Clear items of listBox2
itemSelected = false;
}
}
private void listBox2_SelectedItemChanged(object sender, EventArg e)
{
if(itemSelected == false)
{
// select the item of listBox2
itemSelected = true;
}
else
{
// Clear items of listBox1
itemSelected = false;
}
}
此代码根本未经过测试。所以你可能会修一下if-else条件
答案 1 :(得分:0)
listBox1.DataSource = new string[] { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE" };
listBox2.DataSource = new string[] { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE" };
// inline event handlers
listBox1.Click += (s,e)=>{
listBox2.SelectedIndex = -1;
};
listBox2.Click += (s,e) =>
{
listBox1.SelectedIndex = -1;
};
问候。