ListBox.Contains无法按预期工作

时间:2013-06-14 08:15:54

标签: c# listbox

我的代码中有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_selectionlist_selectedListBoxes

5 个答案:

答案 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))