example - datagridview c# windows form
¿Acceso directo a DataGridView combobox en un solo clic? (3)
Cambie la propiedad EditMode de su control DataGridView a "EditOnEnter". Esto afectará a todas las columnas sin embargo.
Me molesta hacer clic una vez para seleccionar una fila en la vista de datos y luego hacer clic nuevamente para hacer clic en un control en esa fila (en este caso, un cuadro combinado).
¿Hay alguna forma de configurar esto para que todo esto se pueda hacer con un clic del mouse en lugar de con dos?
Pude activar el cuadro combinado y desplegarlo con un solo clic del ratón al configurar la propiedad EditMode de DataGridView en EditOnEnter y al crear el evento EditingControlShowing y agregar código para desplegar el cuadro combinado en este evento.
Para obtener más detalles, visite http://newapputil.blogspot.in/2015/08/add-combo-box-in-cell-of-datagridview.html
Si desea aplicar selectivamente la edición de un clic a ciertas columnas, puede cambiar la celda actual durante el evento MouseDown para eliminar el clic para editar:
// Subscribe to DataGridView.MouseDown when convenient
this.dataGridView.MouseDown += this.HandleDataGridViewMouseDown;
private void HandleDataGridViewMouseDown(object sender, MouseEventArgs e)
{
// See where the click is occurring
DataGridView.HitTestInfo info = this.dataGridView.HitTest(e.X, e.Y);
if (info.Type == DataGridViewHitTestType.Cell)
{
switch (info.ColumnIndex)
{
// Add and remove case statements as necessary depending on
// which columns have ComboBoxes in them.
case 1: // Column index 1
case 2: // Column index 2
this.dataGridView.CurrentCell =
this.dataGridView.Rows[info.RowIndex].Cells[info.ColumnIndex];
break;
default:
break;
}
}
}
Por supuesto, si sus columnas y sus índices son dinámicos, necesitará modificar esto un poco.