从列表框中读取时出错

时间:2016-03-21 17:51:44

标签: c# .net listboxitem

我试图在列表框中找到一个字符串。如果它被发现显示一个消息框,如果没有它会抛出一个不同的消息框。但我在错误的部分得到一个错误。请帮忙。

{    
    string myString = metroTextBox1.Text;//username
    // Search starting from index -1:
    int index = listBox1.FindString(myString, -1);//username

    if (index != -1)
    {
        listBox1.SetSelected(index, true);//username
        MessageBox.Show("ok");
    }
    else
    {
        listBox1.SetSelected(index, false);//username
        MessageBox.Show("error");
    }

}

1 个答案:

答案 0 :(得分:1)

您尝试在列表框中设置一个项目,但您传入的索引是-1。如果您未在列表框中找到该字符串,则无法将任何项设置为false。您可以执行其他操作,例如循环遍历所有可用项并将其设置为false,但这取决于您要在该实例中发生的内容,而您找不到的字符串未找到。您可能只想在其他条款TBH中做任何事情。

if (index != -1)
{
    listBox1.SetSelected(index, true);//username
    MessageBox.Show("ok");
}
else
{
    listBox1.SetSelected(index, false);//username    // Index == -1 here. This will FAIL.
    MessageBox.Show("error");
}