Tim Van Wassenhove home

Here is a way that allows the user to select a row (custom object properties are used as column values) from a DataGridView assuming that the SelectionMode property is set FullRowSelect

private void FillDataGridViewPersons( List<person> persons ) 
{
	this.dataGridViewPersons.Rows.Clear();

	for ( int i = 0; i < persons.Count; ++i ) 
	{ 
		this.dataGridViewPersons.Rows.Add(); 
		this.dataGridViewPersons.Rows[i].Tag = persons[i]; 
		this.dataGridViewPersons.Rows[i].SetValues( new object[] { persons[i].Id, persons[i].Name } ); 
	} 
} 

private void buttonDoSomething_Click( object sender, EventArgs e ) 
{ 
	if ( this.dataGridViewPersons.SelectedRows.Count == 1 ) 
	{ 
		int selectedRowIndex = this.dataGridViewPersons.SelectedCells[0].RowIndex; 
		Person selectedPerson = (Person)this.dataGridViewPersons.Rows[selectedRowIndex].Tag; 
		MessageBox.Show( String.Format( "You selected the person with id: {0}", selectedPerson.Id ) ); 
	} 
}