2013-06-19 3 views
-1

J'ai une combo-box dans une application Windows Mobile. Je l'ai ajouté des éléments à de la manière suivante:Comment définir et récupérer la valeur d'une zone de liste déroulante?

 

     cmb_task.Items.Add(new ListItem(taskid.ToString(), taskname)); 

Je l'ai fait b'coz je veux définir un champ de valeur à la combobx à utiliser plus tard dans mon code.

Dans la fonction de changement d'index, je souhaite définir la valeur sélectionnée sur une variable.

 

    private void cmb_task_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     taskid = Convert.ToInt32(cmb_task.SelectedValue); 
    } 

mais en quelque sorte ce morceau de code retourne 0 comme valeur sélectionnée même si je sélectionne 2ème élément de combobox avec valeur = 2.

Y a-t-il un autre moyen de s'y prendre?

Répondre

0

J'ai trouvé une solution avec l'aide de mon collègue.

Comme j'avais utilisé ListItem pour ajouter de la valeur et un élément à ComboBox, cmb_task.SelectedValue ne fonctionnait pas.

Il doit être casté de la manière suivante pour récupérer la valeur.

 

    ListItem list = (ListItem)cmb_task.SelectedItem; 
    taskid = Convert.ToInt32(list.ID); 

-1

Comment sélectionner la valeur de ValueMember dans SelectedIndexChanged?

Dim DTDep As DataView 
Private Sub CargarUbicacion() 
     Dim adapter As New SqlCeDataAdapter 
     Dim comando As SqlCeCommandBuilder 
     Dim Datos As New DataSet 
     Dim Str As String 
     Dim Consult As String 


     Try 
      Str = "select idUbicacion,Descripcion from Ubicacion order by Descripcion" 

      Dim Cn As SqlCeConnection = GetConnection() 
      adapter = New SqlCeDataAdapter(Str, Cn) 
      adapter.Fill(Dset, "UBICACION") 
      DTDep = Dset.Tables("UBICACION").DefaultView 
      Me.cmbUbicaciones.DataSource = DTDep 
      Me.cmbUbicaciones.DisplayMember = "Descripcion" 
     Catch ex As Exception 
      MsgBox("Error al cargar ubicaciones" & ex.Message) 
     End Try 
    End Sub 
this ? 
    Private Sub cmbUbicacion_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmbUbicacion.SelectedValueChanged 


     Me.lblIiUbiFin.Text = Convert.ToInt32(Me.cmbUbicacion.SelectedValue).ToString 

    End Sub 
+0

J'utilise C#. votre solution est exactement ce que ma question a mais dans VB. – Arti

Questions connexes