Tem várias maneiras de se fazer isso... vai depender da sua utilização.
Segue um exemplo, utilizando o CommandField do tipo Select:
Aspx:
<asp:GridView ID="grvTeste" runat="server" AutoGenerateColumns="False" DataKeyNames="Id" OnSelectedIndexChanged="grvTeste_SelectedIndexChanged"
CellPadding="4" ForeColor="#333333" GridLines="None" >
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:BoundField DataField="Id" />
<asp:BoundField DataField="Nome" />
<asp:CommandField ButtonType="Link" ShowSelectButton="true" SelectText="Selecionar" />
</Columns>
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
</asp:GridView>
<asp:Label ID="lblSelecionado" runat="server" Text="Linha selecionada: " />
Code Behind:
protected void grvTeste_SelectedIndexChanged(object sender, EventArgs e)
{
GridView gridView = (GridView)sender;
lblSelecionado.Text = string.Format("Linha selecionada=> Indice: {0}; Id: {1}; Nome: {2}", gridView.SelectedIndex, gridView.SelectedDataKey.Value, gridView.Rows[gridView.SelectedIndex].Cells[1].Text);
}