2010-12-03 6 views
6

ich eine Funktion für Elemente in einer Combobox und ein Element Einstellung ist standardmäßig festgelegt werden, wieEinstellung Standardelement in Kombinationsfeld

--WÄHLE 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(); 
     } 
    } 

Kann jemand ein vorschlagen Weg, dies zu tun?

Antwort

14

Ich habe diese Antwort umgeschrieben, um einige Dinge zu klären.

Zuerst muss der "Standard" Text als Combo Element hinzugefügt werden. Die Verwendung der combo.Text Eigenschaft fügt nur beschreibenden Text zur Combobox hinzu, der "verloren" wird, wenn der erste Benutzer etwas mit einem Steuerelement macht. Wenn Sie dauerhaft "Standard" Text in Ihrer Combo haben möchten, müssen Sie es als Combobox-Element hinzufügen.

Durch den Code, den Sie zur Verfügung gestellt, ändern nur die

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

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

Beachten Sie, dass diese Art und Weise Sie das Element "-SELECT OPERANDS-" zum 0. (Lesen Sie zuerst) Position in der Liste hinzuzufügen. Stellen Sie außerdem sicher, dass alle folgenden Elemente um 1 erhöht werden, da sie jetzt um eine Stelle nach unten in der Liste verschoben sind.

Schließlich setzen Sie

cboOperations.SelectedIndex = 0;
Zeile am Ende des Codes. Indem Sie dies tun, sagen Sie der Combobox, dass Sie Ihr "Standard" -Objekt zuerst anzeigen, wenn das Formular (oder Steuerelement) geladen wird.

Eine weitere Sache. Ich bin nicht sicher, was Sie mit dem Code über das Festlegen von Combo-Elementen hinaus erreichen möchten, aber wenn Sie überprüfen möchten, welcher Benutzer ausgewählt wurde, verwenden Sie die Eigenschaft cboOperations.SelectedIndex, die das aktuell ausgewählte Element in der Combo enthält. Sie können einfach

if(cboOperations.SelectedIndex == someIntValue){...}
hinzufügen Der Rest ist Ihre Programmlogik;)