当用户单击该行的单元格时,如何select完整的dataGridView行?

我有一个dataGridView ,我需要当用户单击任何单元格包含此单元格的整个行也被选中。 (它有多选disbaled)我试图得到这样的currentRowIndex

  int Index = dataGridView1.CurrentCell.RowIndex; 

但是,我不知道如何使用索引来select该行。 试过这个和其他六种方式没有成功:

 dataGridView1.Select(Index); 

你知道我能做到这一点吗?

您需要将datagridview的SelectionMode设置为FullRowMode

注意:在带有.NET 4.5的Visual Studio 2013中,该属性称为FullRowSelect ,请参阅https://msdn.microsoft.com/zh-cn/library/3c89df86(v=vs.110).aspx

如果您希望以编程方式select行,则可以使用datagridview的单元格单击事件:在VB.net和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 

C#

 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; } 

在DataGridView属性中,设置

  • MultiSelect – > True
  • SelectionMode – > FullRowSelect

可以做这样的事情

 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); }