none
DataGridView – Comment taper du texte dans une cellule combobox RRS feed

  • Discussion générale

  • Par défaut un DataGridViewComboBoxCell ne supporte pas l’introduction du texte dans la cellule. Il existe des raisons, toutefois, pour lesquelles on a besoin d’introduire du texte dans un combobox. Pour obtenir cette facilité, deux choses sont à faire. La propriété DropDownStyle du contrôle ComboBox doit d'abord être fixée à DropDown pour permettre de taper du texte dans la zone de liste déroulante. La deuxième chose qui reste à faire est de s'assurer que la valeur que l'utilisateur a tapée dans la cellule est ajoutée à la collection d’éléments de zone de liste déroulante. Le gestionnaire d'événements de CellValidating est l'endroit approprié pour ajouter de la valeur à la collection d'éléments.

     

    private void dataGridView1_CellValidating(object sender,
         DataGridViewCellValidatingEventArgs e)
    {
     if (e.ColumnIndex == comboBoxColumn.DisplayIndex)
     {
      if (!this.comboBoxColumn.Items.Contains(e.FormattedValue))
      {
       this.comboBoxColumn.Items.Add(e.FormattedValue);
      }
     }
    }
     
    
    private void dataGridView1_EditingControlShowing(object sender,
         DataGridViewEditingControlShowingEventArgs e)
    {
     if (this.dataGridView1.CurrentCellAddress.X == comboBoxColumn.DisplayIndex)
     {
      ComboBox cb = e.Control as ComboBox;
      if (cb != null)
      {
       cb.DropDownStyle = ComboBoxStyle.DropDown;
       }
     }
    
    

     

     

     

    Pour plusieurs questions sur la bibliothèque de classes .NET, visitez Foire aux Questions  -  Bibliothèque de classes .NET Framework

    vendredi 30 juillet 2010 11:50