Как посмотреть, находится ли значение в поле со списком - PullRequest
0 голосов
/ 09 апреля 2019

В моей форме win мне нужно проверить, находится ли введенное пользователем строковое значение в поле со списком, где значения данных поля со списком получены из базы данных.

Можно ли просто проверить, находится ли значение пользователя в поле со списком, или мне придется вручную проверять базу данных, чтобы увидеть, присутствуют ли данные?

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

Я пытался использовать содержать, но он всегда возвращает false, даже если данные не находятся в поле со списком, любая обратная связь приветствуется:)

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Вы должны быть в состоянии использовать метод FindStringExact, чтобы определить, существует ли элемент в ComboBox.

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

Подробнее о методе FindStringExact можно прочитать в документации .NET:

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

Надеюсь, это поможет.

0 голосов
/ 09 апреля 2019

Приведение Предметов в виде строк будет работать на то, что вы хотите.Элементы обрабатываются как ObjectCollection, и их IEnumerable даже не пытается проверить, содержится ли строка.

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

Приведенный выше код работал так, как и должно быть в моем тестировании, и, надеюсь, он будет работать для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...