2015-03-17 8 views
0

Если я дважды щелкнул ячейку заголовка строки моего gridview, я получаю ошибку параметра индекса. Я попытался исправить это в своем событии Double click с моим заявлением RowIndex, но есть ли другое место, которое я должен сделать?C# datagridview проверка правильности строк

private void DGV1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
     { 


       try 
       { 
        if ((e.ColumnIndex > 0)) 
        { 
         EditUser eu = new EditUser(); 
         eu.UserId = DGV1.Rows[e.RowIndex].Cells[1].Value.ToString(); 
         FormFunctions.OpenMdiDataForm(Program.GetMainMdiParent(), eu);  
        } 
        if (e.RowIndex == 0 || e.RowIndex == -1) 
        { 
         return; 
        } 
       } 
       catch (Exception ex) 
       { 
        MessageBox.Show("Error\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       } 
      } 
+1

-1 - действительный индекс, который 'DataGridView' будет использовать для указания действий в RowHeader или ColumnHeader. Это определяется поведением. – Anthony

ответ

0

Ваша логика проверки не применяется в желаемом порядке. Измените условие проверки на что-то вроде этого:

try 
{ 
    if (e.ColumnIndex > 0 && e.RowIndex > 0) 
    { 
     EditUser eu = new EditUser(); 
     eu.UserId = DGV1.Rows[e.RowIndex].Cells[1].Value.ToString(); 
     FormFunctions.OpenMdiDataForm(Program.GetMainMdiParent(), eu);  
    } 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("Error\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
} 
Смежные вопросы