c# - seleccionar - ¿Cómo selecciono una fila dataGridView completa cuando el usuario hace clic en una celda de esa fila?
seleccionar una celda de un datagridview c# (4)
En las propiedades de DataGridView, establecer
- MultiSelect -> True
- SelectionMode -> FullRowSelect
Tengo un dataGridView
y necesito que cuando el usuario haga clic en cualquier celda, toda la fila que contiene esta celda también esté seleccionada. (se ha eliminado el multiselect) Intenté obtener el currentRowIndex
como este
int Index = dataGridView1.CurrentCell.RowIndex;
Sin embargo, no estoy seguro de cómo usar el índice para seleccionar esa fila. Intenté esto y sobre otras seis formas sin éxito:
dataGridView1.Select(Index);
¿Sabes una forma en que puedo hacer esto?
Necesitas configurar el SelectionMode
de datagridview en FullRowMode
.
Nota: en Visual Studio 2013 con .NET 4.5, la propiedad se llama FullRowSelect
, consulte https://msdn.microsoft.com/en-us/library/3c89df86(v=vs.110).aspx
Podría hacer algo como esto
protected override void Render(HtmlTextWriter writer)
{
foreach (GridViewRow row in Results.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
row.Attributes["onmouseover"] = "this.style.cursor=''pointer'';";
row.CssClass = "rowHover";
row.ToolTip = "Click row to view person''s history";
row.Attributes.Add("onclick", this.ClientScript.GetPostBackClientHyperlink(this.Results,"Select$" & r.RowIndex , true));
}
}
base.Render(writer);
}
Si desea la fila seleccionada programáticamente, usaría el evento de clic de celda de la vista de cuadrícula de datos: se muestra en VB.net y C #
VB.Net
Private Sub dgvGrid_CellClick(sender as System.Object, e as System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvGrid.CellClick
If e.RowIndex < 0 Then
Exit Sub
End If
intIndex = e.RowIndex
dgvGrid.Rows(intIndex).Selected = True
Exit Sub
DO#
private void dgvRptTables_CellClick(System.Object sender, System.Windows.Forms.DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0) {
return;
}
int index = e.RowIndex;
dgvGrid.Rows[index].Selected = true;
}