2016-03-22 6 views
1

У меня есть проблема с сортировкой заголовка DataGridView в окне формы ...Сортировка - заголовки Исключение из DataGridView

это мой код на CellContentClick

private void dgvApprovazione_CellContentClick(object sender, DataGridViewCellEventArgs e) 
    { 
     if (dgvApprovazione.Rows[e.RowIndex].Cells[e.ColumnIndex] is DataGridViewLinkCell) 
     {//Process link on string 
      System.Diagnostics.Process.Start(dgvApprovazione.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string); 
     } 
    } 

мой DataGridView результат .. enter image description here

, но когда я нажимаю на столбцы заголовков, у меня есть это исключение: enter image description here

как его решить?

+0

Вы должны проверить, если '(e.RowIndex> = 0)' –

+1

Копировать фактическое исключение в буфер обмена и заменить изображение выше. Мы считаем, что вам не нужны фото доказательства, и кто-то в будущем, у кого может возникнуть проблема, может использовать поисковую систему для этой ошибки и найти ее; что невозможно на фотографии. – OmegaMan

ответ

3

Вы должны проверить, не находится ли ячейка с щелчком в строке заголовка, иначе при попытке получить доступ к ячейке этой строки вы получите ArgumentOutOfRangeException, потому что вы пытались получить ячейку по адресу RowIndex = -1.

Индекс был за пределами допустимого диапазона. Должен быть неотрицательным и меньше размера коллекции.

Вы должны проверить, если (e.RowIndex>=0)

+0

Если щелкнутая ячейка является строкой заголовка, она должна запускать [DataGridView.ColumnHeaderMouseClick] (https://msdn.microsoft.com/library/system.windows.forms.datagridview.columnheadermouseclick%28v=vs.110%29. aspx) event – J3soon

+0

Я думаю, что исключение выбрано из-за 'Sorting'. – J3soon

+0

@ J3soon OP пытается обработать событие щелчка ссылок в строках. (S) Он не хочет обрабатывать клики по заголовку столбца. –

Смежные вопросы