¿Cómo selecciona una fila de Datagridview haciendo clic con el botón derecho?Haga clic con el botón derecho para seleccionar una fila de Datagridview
Respuesta
// Clear all the previously selected rows
foreach (DataGridViewRow row in yourDataGridView.Rows)
{
row.Selected = false;
}
// Get the selected Row
DataGridView.HitTestInfo info = yourDataGridView.HitTest(e.X, e.Y);
// Set as selected
yourDataGridView.Rows[info.RowIndex].Selected = true;
Lo interesante es añadir un menú en ese botón derecho del ratón, por ejemplo, con la opción como "información Ver cliente", "verificar últimas facturas", "Añadir una entrada de registro para este cliente", etc.
solo necesita agregar un objeto ContextMenuStrip, agregar las entradas de menú y, en las propiedades de DataGridView, simplemente seleccione ContextMenuStrip.
Esto crearía un nuevo menú en la fila que el usuario hace clic derecho con todas las opciones, entonces todo lo que necesita hacer es hacer su magia :)
recuerde que necesita código JvR para conseguir lo fue la fila usuario, luego tome la celda que contiene la ID del cliente, por ejemplo, y pase esa información.
espero que ayude a mejorar su aplicación
Puede utilizar el código de JvR en el evento MouseDown de su DataGridView.
Subclase el DataGridView
y crear un evento MouseDown
para la red,
private void SubClassedGridView_MouseDown(object sender, MouseEventArgs e)
{
// Sets is so the right-mousedown will select a cell
DataGridView.HitTestInfo hti = this.HitTest(e.X, e.Y);
// Clear all the previously selected rows
this.ClearSelection();
// Set as selected
this.Rows[hti.RowIndex].Selected = true;
}
hacer que se comporte de manera similar al botón izquierdo del ratón? p.ej.
private void dataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
dataGridView.CurrentCell = dataGridView[e.ColumnIndex, e.RowIndex];
}
}
Esto funcionó bien para mí, ¡gracias! – Superbeard
Esto es más flexible y completo que la respuesta de JvR, pero debe agregar un cheque para 'e.ColumnIndex> = 0 && e.RowIndex> = 0' en caso de que el usuario haga clic derecho en un encabezado. – Chad
que tiene que hacer dos cosas:
Borrar todas las filas y seleccionar la corriente. Me bucle a través de todas las filas y utilizar la expresión Bool
i = e.RowIndex
para esteSi usted ha hecho Paso 1 todavía tiene un gran escollo:
DataGridView1.CurrentRow no vuelve a su fila seleccionada previamente (lo cual es bastante peligroso). Desde CurrentRow es de sólo lectura que tiene que hacerMe.CurrentCell = Me.Item(e.ColumnIndex, e.RowIndex)
Protected Overrides Sub OnCellMouseDown( ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) MyBase.OnCellMouseDown(e) Select Case e.Button Case Windows.Forms.MouseButtons.Right If Me.Rows(e.RowIndex).Selected = False Then For i As Integer = 0 To Me.RowCount - 1 SetSelectedRowCore(i, i = e.RowIndex) Next End If Me.CurrentCell = Me.Item(e.ColumnIndex, e.RowIndex) End Select End Sub
- 1. menú contextual con el botón derecho del mouse para datagridview
- 2. DataGridView, haga clic con el botón derecho en el menú/copiar ejemplo?
- 3. Haga clic con el botón derecho para seleccionar una fila en una vista de gráfico de datos y muestre un menú para eliminarlo
- 4. Haga doble clic en la fila DataGridView?
- 5. Haga clic con el botón derecho para seleccionar elementos en un ListBox
- 6. Capturar Haga clic con el botón derecho en HTML DIV
- 7. WinForms ListBox Haga clic con el botón derecho
- 8. Selenium 2 haga clic con el botón derecho
- 9. Mostrando un menú emergente en QGraphicsScene, haga clic o haga clic con el botón derecho
- 10. Haga clic con el botón derecho en seleccionar en .Net TreeNode
- 11. C#: Seleccionar fila de DataGridView
- 12. Haga clic derecho en JButton
- 13. Disparador clic con el botón derecho
- 14. Pruebas de automatización Ui haga clic con el botón derecho en los menús
- 15. Haga clic derecho en JavaFX?
- 16. Datagridview, deshabilitar botón/fila
- 17. Java Swing JTable; Haga clic con el botón derecho en el menú (¿Cómo lo hago para "seleccionar" también resaltar la fila)
- 18. WebBrowser Control - Prevenir clic con el botón derecho
- 19. ListaJaz Haga clic con el botón derecho en el menú (Usar, soltar, cancelar)
- 20. ¿Cómo puedo hacer clic con el botón derecho para seleccionar un nodo en un control treeview?
- 21. DatagridView Seleccionar la última fila
- 22. Haga clic derecho en el menú contextual para Java JTree?
- 23. Validar DataGridView en el elemento de menú, haga clic en
- 24. haga clic derecho en el menú contextual jquery
- 25. "Git Bash aquí" no funciona cuando haga clic con el botón derecho en
- 26. Cómo enlazar con el botón derecho del mouse, haga clic en knockoutJs?
- 27. Cocoa: haga clic con el botón secundario en NSStatusItem
- 28. Cierre JFrame con botón haga clic en
- 29. python tkinter vista de árbol clic derecho (Botón-3) evento para seleccionar el elemento en treeview
- 30. Silverlight Selección de cuadrícula de datos al hacer clic con el botón derecho
esto se pone muy lento cuando la cantidad de filas es alta ... – karlipoppins
Si su DataGridView tiene MultiSelect se establece en false y despejándose la selección previa es innecesario Además, HitTestInfo puede devolver HitTestInfo.Nowhere si el hit no es una Fila/Columna válida. – stuartd
¿No puede .ClearSelection ayudar a acelerar las cosas? – ccalboni