2012-09-14 33 views
6

tengo este código en mi programa en C#, pero le da un ataque cuando se hace clic en algunos botones porque no hay ninguna fila seleccionada en el DataGridView (utilizo el método clearSelection):C# Datagridview - Verificar la fila se selecciona

string selectedUser = usersGrid.SelectedRows[0].Cells[1].Value.ToString(); 

¿Existe algún tipo de control que pueda hacer antes de la línea anterior para garantizar que se seleccione una fila?

+0

Pensé que mi publicación era lo suficientemente clara, y los chicos a continuación obtuvieron exactamente lo que estaba mal. Perdón por cualquier confusión. – hshah

Respuesta

19
if (usersGrid.SelectedRows.Count > 0) 
+1

¡Perfecto! Gracias :) – hshah

2

Voy a tomar una puñalada en lo que creo que está tratando de hacer, tratar esto más adelante

private void myButton_Click(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow row in usersGrid.Rows) 
    { 
     if (this.usersGrid.SelectedRows.Count == 1) 
     { 
     // get information of 1st column from the row 
     string selectedUser = this.usersGrid.SelectedRows[0].Cells[0].ToString(); 
     } 
    } 
} 

también haga lo siguiente, así, y obtenga el enlace

Conjunto DataGridView.MultiSelect = falso y DataGridView.SelectionMode = FullRowSelect. Esto hará que el usuario solo pueda seleccionar una sola fila a la vez.

+0

Esto también funciona, pero prefiero el> 0 que mencionó Tergiver :) – hshah

+0

que es tu elección si es así solo refactoriza mi respuesta para que se adapte a tu caso de uso ... – MethodMan

Cuestiones relacionadas