2010-12-03 11 views
6

Mam funkcji do ustawiania elementów w combobox i jednego elementu ma być domyślnie ustawione jakDomyślne ustawienie pozycji w polu kombi

--wybierz LIST--

public void SetOperationDropDown() 

    { 

     int? cbSelectedValue = null; 
     if(cmbOperations.Items.Count == 0) 
     { 
      //This is for adding four operations with value in operation dropdown 
      cmbOperations.Items.Insert(0, "PrimaryKeyTables"); 
      cmbOperations.Items.Insert(1, "NonPrimaryKeyTables"); 
      cmbOperations.Items.Insert(2, "ForeignKeyTables"); 
      cmbOperations.Items.Insert(3, "NonForeignKeyTables"); 
      cmbOperations.Items.Insert(4, "UPPERCASEDTables"); 
      cmbOperations.Items.Insert(5, "lowercasedtables"); 
      //ByDefault the selected text in the cmbOperations will be -SELECT OPERATIONS-. 
      cmbOperations.Text = "-SELECT OPERATIONS-"; 
     } 
     else 
     { 
      if(!string.IsNullOrEmpty("cmbOperations.SelectedValue")) 
      { 
       cbSelectedValue = Convert.ToInt32(cmbOperations.SelectedValue); 
      } 
     } 
     //Load the combo box cmbOperations again 
     if(cbSelectedValue != null) 
     { 
      cmbOperations.SelectedValue = cbSelectedValue.ToString(); 
     } 
    } 

Czy ktoś może zaproponować sposób to zrobić?

Odpowiedz

14

Przepisałem tę odpowiedź, aby wyjaśnić pewne kwestie.

Po pierwsze, tekst "domyślny" musi również zostać dodany jako element złożony. Użycie właściwości combo.Text po prostu dodaje opisowy tekst do combobox, który jest "zagubiony" po raz pierwszy użytkownik zrobić coś ze sterowaniem. Jeśli chcesz mieć na stałe "domyślny" tekst w swoim zestawie, musisz go dodać jako element combobox.

przez kod podany, po prostu zmodyfikować

cmbOperations.Text = "-SELECT OPERATIONS-";
do

cmbOperations.Items.Insert(0, "-SELECT OPERATIONS-");

Zauważ, że ten sposób można dodać element "-SELECT OPERANDS-" do 0TH (czytaj pierwszy) pozycję na liście. Upewnij się również, że wszystkie poniższe elementy zostały zwiększone o 1, ponieważ są teraz przesunięte o jedno miejsce w dół na liście.

Na koniec wstaw linię

cboOperations.SelectedIndex = 0;
na końcu kodu. Robiąc to, mówisz comboboxowi, aby wyświetlał "domyślny" element początkowo po wczytaniu formularza (lub kontrolki).

Jeszcze jedno. Nie jestem do końca pewien, co chcesz osiągnąć za pomocą kodu wykraczającego poza ustawienie elementów combo, ale jeśli chcesz sprawdzić, który użytkownik wybrał, użyj właściwości cboOperations.SelectedIndex, która zawiera aktualnie wybrany element w kombinacji. Możesz dodać proste

if(cboOperations.SelectedIndex == someIntValue){...}
Reszta to Twoja logika programu;)

Powiązane problemy