我的代码中有2个错误,无法弄清楚如何解决这个问题。
这是我的代码:
private void add_button_Click(object sender, EventArgs e)`
{
try
{
if (list_selected.Contains(List_selection.SelectedItem))
{
MessageBox.Show("Can't add the same type twice");
}
else
{
list_selected.Items.Add(List_selection.SelectedItem);
}
}
catch
{
{
MessageBox.Show("No type selected");
}
}
}
这些是错误:
错误1
最佳重载方法匹配 'System.Windows.Forms.Control.Contains(System.Windows.Forms.Control的)' 有一些无效的论点
错误2
参数1:无法从'object'转换为 'System.Windows.Forms.Control'C:\ Projects \ flashloader2013 \ mainapplication \ Form1.cs 467 44 Main
请帮帮我。 ]
List_selection
和list_selected
为ListBoxes
。
答案 0 :(得分:3)
你需要写:
if (list_selected.Items.Contains(List_selection.SelectedItem))
否则,您检查listView / Listbox的控件集合(无论控件可能包含其他控件)
答案 1 :(得分:3)
而不是ListBox.Contains
检查控件是否包含子控件,而不是检查ListBox是否包含此项。所以使用ListBox.Items.Contains
:
if (list_selected.Items.Contains(List_selection.SelectedItem))
答案 2 :(得分:2)
转过来:
if (list_selected.Contains(List_selection.SelectedItem))
成:
if (list_selected.Items.Contains(List_selection.SelectedItem))
答案 3 :(得分:1)
您的代码应该是这样的
private void button1_Click(object sender, EventArgs e) {
if (listBox1.Items.Contains(listBox1.SelectedItem)) {
MessageBox.Show("Can't add the same type twice");
}
else {
listBox1.Items.Add(listBox1.SelectedItem);
}
}
答案 4 :(得分:1)
您的代码无效,因为您正在尝试查询ListBox。
如果您看到添加
list_selected.Items.Add(List_selection.SelectedItem);
你会发现你必须查询这些项目。如下。
list_selected.Items.Contains(List_selection.SelectedItem))