none
Программное выделение нескольких ячеек в DataGridView vb.net RRS feed

  • Общие обсуждения

  • Здравствуйте, коллеги!

    Не могу найти ответ на вопрос: можно ли программно осуществить выделение двух и более ячеек в контроле DataGridView?

    Имеется таблица с 9-ю колонками. Разбита на 3 группы, в каждой группе по три колонке.

    DataGridView настроен на выделение только ячейки.

    Хочу сделать так, чтобы при выделении любой ячейки в группе выделялись все три ячейки.

    Пробовал так (щелкаю в ячейку первой группы):

    Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick
      Dim CurrentSelectCellColumnIndex As Integer = e.ColumnIndex
      Dim CurrentSelectCellRowIndex As Integer = e.RowIndex      
      If CurrentSelectCellColumnIndex >= 0 And CurrentSelectCellColumnIndex <= 2 Then
        DataGridView1.MultiSelect = True           
        DataGridView1.Item(0, CurrentSelectCellRowIndex).Selected = True
        DataGridView1.Item(1, CurrentSelectCellRowIndex).Selected = True
        DataGridView1.Item(2, CurrentSelectCellRowIndex).Selected = True
        DataGridView1.MultiSelect = False
      End If
    End Sub

    При выполнении кода срабатывает исключение: "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции."

    Странно, но щелкаю на второй столбец, индекс определяется правильно =1, но при выполнении команды DataGridView1.Item(0, CurrentSelectCellRowIndex).Selected = True возникает исключение.

    Может кто-нибудь пробовал сделать такое?

    С уважением, Владимир.


    9 июня 2015 г. 11:00