如何查看组合框中是否有值

时间:2019-04-09 15:27:17

标签: c# asp.net .net winforms combobox

在我的winform中,我需要检查用户输入的字符串值是否在组合框中,该组合框中的数据值是从数据库中获取的。

是否可以简单地检查用户值是否已经在组合框中,或者我是否必须手动检查数据库以查看数据是否存在?

    private void Button1_Click(object sender, EventArgs e)
    {
        if (!questionList.Items.Contains(customQ.Text.Trim()))
        {
            dbconnect.addQ(customQ.Text);
            refreshBox();
        }
    }

我尝试使用contains,但是即使数据不在组合框中,它也总是返回false,不胜感激:)

2 个答案:

答案 0 :(得分:1)

您应该能够使用FindStringExact方法确定ComboBox中是否已经存在一个项目。

if (questionList.FindStringExact(customQ.Text.Trim()) < 0)
{
    // The item was not found to already exist
}

您可以在.NET文档中阅读有关FindStringExact方法的更多信息:

https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.combobox.findstringexact?view=netframework-4.7.2

希望这会有所帮助。

答案 1 :(得分:0)

将项目铸造为字符串将适合您的需求。项目作为ObjectCollection处理,它们的IEnumerable甚至不会尝试检查是否包含字符串。

private void Button1_Click(object sender, EventArgs e)
{
    if (!questionList.Items.Cast<string>().Contains(customQ.Text.Trim()))
    {
        dbconnect.addQ(customQ.Text);
        refreshBox();
    }
}

上面的代码在我的测试中可以正常工作,希望可以为您工作。