Witam
Mam następujący problem. Mam trzy combobox-y. Trzeci jest ukryty. Drugi jest wywoływany przez zdarzenie SelectedIndexChanged pierwszego. Chciałbym, aby w przy starcie programu oba nie wyświetlały zawartości, dopiero o rozwinięciu listy i wybraniu pozycji. Jest mi to potrzebne to to, aby po wybraniu pozycji "abcd", która niestety w moim przypadku jest pierwsza na liście drugiego comboboxa (wyświetlanie alfabetyczne) zmieniło mi rozmiar comboboxa i włączyło oraz uzupełniło trzeciego comboboxa. ComboBox1 uzupełniam z bazy za pomocą następującego kodu:
MySqlConnection polaczenie = new MySqlConnection(konfiguracja);
MySqlCommand zapytanie = new MySqlCommand("CALL uzupelnijCombo1(" + wszystkie + ");", polaczenie);
try
{
MySqlDataAdapter wynik = new MySqlDataAdapter();
wynik.SelectCommand = zapytanie;
DataTable tabela = new DataTable();
wynik.Fill(tabela);
comboBox.DisplayMember = "nazwa";
comboBox.ValueMember = "id";
comboBox.DataSource = tabela;
//**comboBox.SelectedIndex = -1; // Błąd,**
}
catch (Exception komunikat)
{
MessageBox.Show(komunikat.Message);
}
polaczenie.Close();
Combo1 jest uzupełnianie po kliknięciu w wybraniu wiersza w datagridview, ale próbowałem również przy ładowaniu formy. Przy starcie programu lista comboboxa1 wypełnia się automatycznie, jednocześnie wczytując combobox2 i ustawiając mu indeks pozycji na pozycję abcd, zmieniając mi szerokość combo1, ustawiając pustą pozycję pustą combo2, a ja chciałbym aby dane były w listach, a nie wyświetlały się od razu i przede wszystkim nie zmieniały mi rozmiaru combo2 i włączały combo3, dopiero po wybraniu przeze mnie w combo2 pozycji abcd.
Kod drugiego combo jest identyczny, z tym że **comboBox.SelectedIndex = -1; ** nie powoduje błędu, a program po uruchomieniu uzupełnia combo, ale pozycje są widoczne dopiero po otwarciu listy. Jeżeli w combo1 odkomentuję linię to dostaje komunikat "Incorrect integer value: " for column 'id' at row 1"