dynamiczne SelectedIndexChanged

0

Witam,

Założenie jest takie:

  1. dynamicznie tworzę n kontrolek comboBox (n = liczba rekordów w bazie)
  2. użytkownik wybiera z listy każdego comboBox'a odpowiedającą mu wartość
  3. dopóki we wszystkich comboBox'ach indeks wybranej opcji nie będzie różny od zera dopóty button1.Enabled = false;

napisany kod do pkt 3):

 
private void cBox_SelectedIndexChanged(object sender, System.EventArgs e)
{
ComboBox cBox = (ComboBox)sender;

int selectedIndex = (int)cBox.SelectedIndex;

if (selectedIndex == 0)
{button1.Enabled = false;}
else
{button1.Enabled = true;}
}

Niestety ten kod nie działa, tzn. wyjściowo button1.Enabled = false, w wykonanie progamu, zmiana już pierwszej z kontrolek comboBox uruchamia button1. Jak zrobić aby dopiero po ustanieniu wszystkich kontrolek (index != 0) odblokowywał się button1.

Dzięki za pomoc!

Pozdrawiam

1

Bo sprawdzasz tylko jednego checkboxa. Pobierz je wszystkie. Najlepiej, jeżeli podczas tworzenia dodasz je do jakiejś tablicy / listy, ale możesz je znaleźć również w kolekcji będącej właściwością Controls twojej formy.

0

Dzięki za drogowskaz, a może podrzucisz jakiś przykładowy kod. Przyznaję, że w dziedzinie dynamicznych kontrolek dopiero raczkuję. A najlepiej uczę się z przykładów.

Z góry wielkie dzięki!

Pozdrawiam

0

Znajdziesz ich tysiąc i jeszcze jeden, wystarczy skorzystać z wyszukiwarki. Wpisz C# + controls.

0

Wykombinowałem coś takiego

  1. przy tworzeniu comboBox pobieram wartość SelectedIndex i Name dla każdego z nich
 
int wybrany_index = combo.SelectedIndex +1; // combo to nazwa mojego dymanicznego comboBox's, a +1, żeby startować od 0
string imie = combo.Name; //ustawione jest na "cbox_"+i
  1. wartości te wskawiam do uprzednio utworzonej tabeli aaa
 
SqlCeCommand insert = conn.CreateCommand();
insert.CommandText = "INSERT INTO aaa (kolumna_1, kolumna_2) VALUES (@kolumna_1, @kolumna_2)";
insert.Parameters.Add("@kolumna_1", wybrany_index);
insert.Parameters.Add("@kolumna_2", imie);
insert.ExecuteNonQuery();

i to jest klops, bo wyrzuca mi błąd:
There was an error parsing the query. [Token line number = 1, Token line offset = 18, Token in eeeor = index]

sprawdziłem parametry tabeli i zmiennych, które chcę wstawić program prawidłowo podstawia wartości pod wybrany_index (tj. 0) i imie (tj. "cbox_0"), ale nie chce wpisać do tabeli.

Z góry wielkie dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1