2010-12-03 19 views
6

Tengo una función para establecer los elementos de un cuadro combinado y un artículo se va a establecer de manera predeterminada comoAjustes por defecto en el cuadro combinado

--select películas--

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

Puede alguien sugerir una forma de hacer esto?

Respuesta

14

He reescrito esta respuesta para aclarar algunas cosas.

Primero, el texto "predeterminado" también se debe agregar como elemento combo. El uso de la propiedad combo.Text solo agrega texto descriptivo a combobox que se "pierde" cuando el usuario primerizo hace algo con un control. Si desea tener permanentemente el texto "predeterminado" en su combo, debe agregarlo como un elemento del cuadro combinado.

por el código que ya ha proporcionado, basta con modificar el

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

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

Tenga en cuenta que de esta manera se agrega el elemento "-SELECT OPERANDS-" a la 0 ª (primera lectura) posición en la lista. También asegúrese de que todos sus elementos siguientes se incrementen en 1, porque ahora se mueven un espacio hacia abajo en la lista.

Finalmente, ponga la línea

cboOperations.SelectedIndex = 0;
al final del código. Al hacerlo, le está diciendo a combobox que muestre su elemento "predeterminado" inicialmente cuando se carga el formulario (o control).

Una cosa más. No estoy muy seguro de qué es lo que quiere lograr con el código más allá de la configuración de elementos combinados, pero si desea comprobar qué usuario seleccionó, use la propiedad cboOperations.SelectedIndex que contiene el elemento actualmente seleccionado en el combo. Puede agregar simple

if(cboOperations.SelectedIndex == someIntValue){...}
El resto es su lógica de programa;)

Cuestiones relacionadas