Выбор элементов в выпадающем списке и удаление их - PullRequest
0 голосов
/ 19 августа 2009

Я хочу найти индекс в выпадающем списке, используя числа в тексте текстового поля, а затем удалить их. Элементы, которые заполняют комбинированный список, принадлежат базе данных, поэтому я использую метод Delete для удаления строк.

EDITED

Я читал, и строка поиска находит текст в списке элементов, а не в индексе. Есть ли в любом случае искать текст в текстовом поле в индексе выпадающего списка?

Может кто-нибудь найти проблему с этим кодом?

private void button4_Click(object sender, EventArgs e)
    {
        int buscar;
        buscar = comboBox1.FindStringExact(tNumEditBox3.Text, 0);

        comboBox1.SelectedIndex = buscar;

        if (comboBox1.SelectedIndex >= 0 && radioButton1.Checked == true)
        {
                CambiosEnviosDataSet.CambioGRow borrarCambioGFila;
                borrarCambioGFila = cambiosEnviosDataSet.CambioG.FindByCambioGID(Convert.ToInt16(tNumEditBox3.Text));

                borrarCambioGFila.Delete();

                this.cambioGTableAdapter.Update(this.cambiosEnviosDataSet.CambioG);

                CambiosEnviosDataSet.CambioERow borrarCambioEFila;
                borrarCambioEFila = cambiosEnviosDataSet.CambioE.FindByCambioEID(Convert.ToInt16(tNumEditBox3.Text));

                borrarCambioEFila.Delete();

                this.cambioETableAdapter.Update(this.cambiosEnviosDataSet.CambioE);
        }
        else if (comboBox2.SelectedIndex <= 0 && radioButton2.Checked == true)
        {
                CambiosEnviosDataSet.EnviosRow borrarEnvioFila;
                borrarEnvioFila = cambiosEnviosDataSet.Envios.FindByEnvioID(Convert.ToInt16(tNumEditBox3.Text));

                borrarEnvioFila.Delete();

                this.enviosTableAdapter.Update(this.cambiosEnviosDataSet.Envios);
        }
        else 
        {
            MessageBox.Show("The key you are using is not in the index");
        }
    }

Ответы [ 3 ]

0 голосов
/ 19 августа 2009

Ваш звонок на FindStringExact пропустит первый пункт. Если вы не хотите, чтобы поиск производился только после первого, используйте перегрузку, которая не принимает параметр startIndex, например:

buscar = comboBox1.FindStringExact(tNumEditBox3.Text);

Если это не ваша проблема, убедитесь, что текст в текстовом поле точно соответствует одному из элементов в выпадающем списке, и убедитесь, что установлен флажок radioButton1.

0 голосов
/ 19 августа 2009

Как я понимаю (поправьте меня, если я ошибаюсь), в вашем текстовом поле есть идентификатор элемента в выпадающем списке (например, 3).

Вам нужно найти элемент с таким идентификатором, а затем установить свойство SelectedItem в выпадающем списке, например:

comboBox1.SelectedItem = 
    cambiosEnviosDataSet.CambioG.FindByCambioGID(Convert.ToInt16(tNumEditBox3.Text));
0 голосов
/ 19 августа 2009

На ум приходит пара вещей.

Либо значение в tNumEditBox3.Text не присутствует в поле со списком. Вы дважды проверили его значение перед звонком:

buscar = comboBox1.FindStringExact(tNumEditBox3.Text, 0);

Другой альтернативой является то, что radioButton2.Checked равно false.

Кстати, вам не нужно явно проверять логическое значение с true или false. Вы можете просто написать:

if (boolean_value)
{
    // Do stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...