各位大佬,我想在winform右边listbox2中,获得左边listbox1中选中的条目。进行获取唯一的条目时,if当中的语句中listBox1.SelectedItem.ToString()和listBox2.Items[i].ToString()的值都为a,但为什么listBox1.SelectedItems.ToString()==listBox2.Items[i].ToString()的bool值为false?
谢谢解疑。
以下是代码
1 private void button1_Click(object sender, EventArgs e) 2 { 3 if (listBox2.Items.Count==0) 4 { 5 listBox2.Items.Add(listBox1.SelectedItem.ToString()); 6 } 7 else 8 { 9 for (int i = 0; i < listBox2.Items.Count; i++) 10 { 11 if (listBox1.SelectedItems.ToString()==listBox2.Items[i].ToString()) 12 { 13 MessageBox.Show("Test"); 14 } 15 else 16 { 17 listBox2.Items.Add(listBox1.SelectedItem.ToString()); 18 } 19 } 20 } 21 }
你的逻辑存在点问题,改为一下代码
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < listBox1.SelectedItems.Count; i++)
{
if (!listBox2.Items.Contains(listBox1.SelectedItems[i]))
{
listBox2.Items.Add(listBox1.SelectedItems[i]);
}
else
{
MessageBox.Show("listBox2已经存在值:" + listBox1.SelectedItems[i]);
}
}
}
listBox1.SelectedItems.ToString()==listBox2.Items[i].ToString()这句代码永远不会相等
因为listBox1.SelectedItems.ToString()拿到的不是选中的值
@lf03: 谢谢,我了解我问题出在哪里了。
if (listBox1.SelectedItems.ToString()listBox2.Items[i].ToString())
多了个s
应该是
if (listBox1.SelectedItem.ToString()listBox2.Items[i].ToString())
谢谢,醍醐灌顶啊,真是谢谢了