好的,所以我试图通过使用多个按钮将项目从一个列表框移动到另一个列表框即
我有2个按钮cmdRight和cmdRight2,它们在表单加载时都被禁用
如果用户选择第一个列表框上的单个项目,则cmdRIght按钮启用但仍禁用cmdRight2,如果用户在第一个列表框中选择多个项目,则cmdRight2按钮启用但cmdRight已禁用.
我有移动按钮可以工作,但我遇到的问题是使用cmdRight2按钮移动多个项目后cmdRight按钮启用(它不应该只在列表框中选择单个项目后启用).我已经尝试了很多if语句等但它仍然会发生.
我是C#的新手,所以任何帮助都会受到赞赏.
谢谢
private void lbList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.lbList1.SelectedItems != null)
{
cmdRight.Enabled = true; //enable cmdRight
cmdClear.Enabled = true; //enable cmdClear
if (this.lbList1.SelectedItems.Count > 1)//if multiple items selected
{
cmdRight.Enabled = false;
cmdRight2.Enabled = true; //enable cmdRight2
}
}
}
private void cmdRight2_Click(object sender, EventArgs e)
{
foreach (int i in lbList1.SelectedIndices)
{
lbList2.Items.Add(lbList1.Items[i].ToString());
}
while (lbList1.SelectedItems.Count > 0)
{
lbList1.Items.Remove(lbList1.SelectedItems[0]);
}
cmdRight2.Enabled = false;
}
private void cmdRight_Click(object sender, EventArgs e)
{
lbList2.Items.Add(lbList1.SelectedItem); //Add selected item from list1 to list2
lbList1.Items.Remove(lbList1.SelectedItem);//remove the selected item in list1
cmdRight.Enabled = false; //disable cmdRight
}
Run Code Online (Sandbox Code Playgroud)
我想你想要
if (this.lbList1.SelectedItems.Count == 1)
{
}
else if(this.lbList1.SelectedItems.Count > 1)
{
}
else
{
}
Run Code Online (Sandbox Code Playgroud)
代替
if (this.lbList1.SelectedItems != null)
Run Code Online (Sandbox Code Playgroud)
然后你可以将所有这些放在一个名为“EnableButtons”的方法中,如其他地方提到的