Esta documentación está archivada y no tiene mantenimiento.

DataGridViewComboBoxCell (Clase)

Muestra un cuadro combinado en un control DataGridView.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public class DataGridViewComboBoxCell : DataGridViewCell
public class DataGridViewComboBoxCell extends DataGridViewCell
public class DataGridViewComboBoxCell extends DataGridViewCell
No aplicable.

La clase DataGridViewComboBoxCell es un tipo especializado de DataGridViewCell utilizado para mostrar un control de cuadro combinado que es un campo de edición combinado con un campo de selección de lista. La clase DataGridViewComboBoxCell seleccionada actualmente contiene un control DataGridViewComboBoxEditingControl en el que el usuario puede cambiar el valor de la celda, presuponiendo que la propiedad ReadOnly de la celda está establecida en false.

A diferencia del control ComboBox, DataGridViewComboBoxCell no tiene las propiedades SelectedIndex ni SelectedValue. En su lugar, cuando se selecciona un valor de una lista desplegable, se establece la propiedad Value de celda.

DataGridViewComboBoxColumn corresponde al tipo de columna especializado para contener celdas de este tipo. Para modelar las celdas dentro de una columna como un control DataGridViewComboBoxCell existente, establezca la propiedad CellTemplate de la columna en esa celda. De manera predeterminada, la propiedad CellTemplate se inicializa con una nueva instancia de DataGridViewComboBoxCell.

Las propiedades de la columna relacionadas con celdas actúan como contenedores para las propiedades con similar denominación de la celda de plantilla. Al cambiar los valores de propiedad de la celda de plantilla sólo se verán afectadas las celdas que estén basadas en la plantilla y se hayan agregado después del cambio. Al cambiar los valores de propiedad relacionados con las celdas de la columna, sin embargo, se actualizará la celda de la plantilla y también todas las demás celdas de la columna, actualizando su presentación si es necesario.

Normalmente trabajará con el tipo DataGridViewComboBoxColumn, a menos que desee reemplazar valores de columna para celdas específicas. Las instrucciones descritas en el tema de información general sobre la clase DataGridViewComboBoxColumn para rellenar la lista desplegable se aplican a instancias de celda y de columna.

Notas para los herederos: Cuando derive del control DataGridViewComboBoxCell y agregue nuevas propiedades a la clase derivada, asegúrese de reemplazar el método Clone para copiar las nuevas propiedades durante las operaciones de clonación. También debe llamar al método Clone de la clase base para que las propiedades de la clase base se copien a la nueva celda.

En el ejemplo de código siguiente se muestra la clase DataGridViewComboBoxColumn, que utiliza la clase DataGridViewComboBoxCell. Puede establecer las propiedades DataSource, ValueMember y DisplayMember de la celda del mismo modo que se establecen las propiedades de columna correspondientes en este ejemplo. Este ejemplo forma parte de un ejemplo más extenso que está disponible en el tema de información general sobre la clase DataGridViewComboBoxColumn.

private DataGridViewComboBoxColumn CreateComboBoxColumn()
{
    DataGridViewComboBoxColumn column =
        new DataGridViewComboBoxColumn();
    {
        column.DataPropertyName = ColumnName.TitleOfCourtesy.ToString();
        column.HeaderText = ColumnName.TitleOfCourtesy.ToString();
        column.DropDownWidth = 160;
        column.Width = 90;
        column.MaxDropDownItems = 3;
        column.FlatStyle = FlatStyle.Flat;
    }
    return column;
}

private void SetAlternateChoicesUsingDataSource(DataGridViewComboBoxColumn comboboxColumn)
{
    {
        comboboxColumn.DataSource = RetrieveAlternativeTitles();
        comboboxColumn.ValueMember = ColumnName.TitleOfCourtesy.ToString();
        comboboxColumn.DisplayMember = comboboxColumn.ValueMember;
    }
}

private DataTable RetrieveAlternativeTitles()
{
    return Populate("SELECT distinct TitleOfCourtesy FROM Employees");
}

string connectionString =
    "Integrated Security=SSPI;Persist Security Info=False;" +
    "Initial Catalog=Northwind;Data Source=localhost";

private DataTable Populate(string sqlCommand)
{
    SqlConnection northwindConnection = new SqlConnection(connectionString);
    northwindConnection.Open();

    SqlCommand command = new SqlCommand(sqlCommand, northwindConnection);
    SqlDataAdapter adapter = new SqlDataAdapter();
    adapter.SelectCommand = command;

    DataTable table = new DataTable();
    table.Locale = System.Globalization.CultureInfo.InvariantCulture;
    adapter.Fill(table);

    return table;
}

System.Object
   System.Windows.Forms.DataGridViewElement
     System.Windows.Forms.DataGridViewCell
      System.Windows.Forms.DataGridViewComboBoxCell

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
Mostrar: