Ответ 1
Вам нужно установить datagridview SelectionMode
на FullRowMode
.
Примечание. В Visual Studio 2013 с .NET 4.5 свойство называется FullRowSelect
, см. https://msdn.microsoft.com/en-us/library/3c89df86(v=vs.110).aspx
У меня есть dataGridView
, и мне нужно, чтобы при щелчке пользователем по любой ячейке была выбрана вся строка, содержащая эту ячейку. (он имеет многосекундный дисбаланс)
Я попытался получить currentRowIndex
следующим образом
int Index = dataGridView1.CurrentCell.RowIndex;
Однако я не уверен, как использовать индекс, чтобы выбрать эту строку. Пробовал этот и другие шесть способов без успеха:
dataGridView1.Select(Index);
Знаете ли вы, как я могу это сделать?
Вам нужно установить datagridview SelectionMode
на FullRowMode
.
Примечание. В Visual Studio 2013 с .NET 4.5 свойство называется FullRowSelect
, см. https://msdn.microsoft.com/en-us/library/3c89df86(v=vs.110).aspx
Если вы хотите, чтобы строка была выбрана программно, вы должны использовать событие щелчка ячейки datagridview: показано на VB.net и С#
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
С#
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, Set
Возможно, что-то вроде этого
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 history";
row.Attributes.Add("onclick", this.ClientScript.GetPostBackClientHyperlink(this.Results,"Select$" & r.RowIndex , true));
}
}
base.Render(writer);
}