我的C#代码出现了问题..
我想用这段代码做的是,当我从文本框中输入带有相同符号(相同名称)的东西时,它显示我无法将它添加到列表框中两次或更多次。 所以我制作了这段代码:
void Btn_addClick(object sender, EventArgs e)
{
string thelist = listBox1.Text;
string text = textBox1.Text;
if(text == thelist)
{
MessageBox.Show("This name already exists!");
}
else
{
listBox1.Items.Add(textBox1.Text);
textBox1.Text = "";
}
}
但问题是,只有当我从列表中选择名称并将其与文本框进行比较时,才会显示MessageBox。如果我没有选择任何单词或其他单词,它会添加相同的单词,而不会告诉它已经存在。
答案 0 :(得分:2)
您正在尝试将TextBox.Text
与整个ListBox
进行比较。您可能想知道ListBox
是否包含您要输入的文字。
以下内容将非常轻松地实现您想要的结果:
void Btn_addClick(object sender, EventArgs e)
{
if(listBox1.Items.Contains(textBox1.Text))
{
MessageBox.Show("This name already exists!");
}
else
{
listBox1.Items.Add(textBox1.Text);
textBox1.Text = "";
}
}
答案 1 :(得分:0)
您需要遍历ListBox中的所有项目以识别重复项目
试试这个:
void Btn_addClick(object sender, EventArgs e)
{
string text = textBox1.Text;
bool isDuplicate = false;
foreach (var name in ListBox1.Items)
{
if(name.ToString().Equals(text))
{
isDuplicate = true;
break;
}
}
if (isDuplicate)
{
MessageBox.Show("This name already exists!");
}
else
{
listBox1.Items.Add(text);
textBox1.Text = "";
}
}