J'ai une dataGridView
et j'ai besoin que lorsque l'utilisateur clique sur une cellule, toute la ligne contenant cette cellule est également sélectionnée. (il a multiselect disbaled) J'ai essayé d'obtenir le currentRowIndex
comme ceci
int Index = dataGridView1.CurrentCell.RowIndex;
Cependant, je ne suis pas sûr de savoir comment utiliser l'index pour sélectionner cette ligne .
dataGridView1.Select(Index);
Savez-vous un moyen que je peux faire cela?
Vous devez définir la variable SelectionMode
de datagridview sur FullRowMode
.
Remarque: dans Visual Studio 2013 avec .NET 4.5, la propriété s'appelle FullRowSelect
, voir https://msdn.Microsoft.com/en-us/library/3c89df86(v=vs.110).aspx
Si vous souhaitez que la ligne soit sélectionnée par programme, vous utiliseriez l'événement de clic de cellule de datagridview: affiché dans VB.net et 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;
}
Dans les propriétés DataGridView,
Pourrait faire quelque chose comme ça
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);
}
Vous pouvez faire ceci: Peut-être que cela peut vous aider.
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex>0)
{
int rowindex = e.RowIndex;
DataGridViewRow row= this.dataGridView1.Rows[rowindex];
}
}
//class to store ID (Pri. Key) value of selected row from DataGridView
public class Variables
{
public static string StudentID;
}
//This is the event call on cell click of the DataGridView
private void dataGridViewDisplay_CellClick(object sender, DataGridViewCellEventArgs e)
{
Variables.StudentID =this.dataGridViewDisplay.CurrentRow.Cells[0].Value.ToString();
//textBoxName is my form field where I set the value of Name Column from the Selected row from my DataGridView
textBoxName.Text = this.dataGridViewDisplay.CurrentRow.Cells[1].Value.ToString();
dateTimePickerDOB.Value = Convert.ToDateTime(this.dataGridViewDisplay.CurrentRow.Cells[2].Value.ToString());
}