2016-02-12 4 views
0

У меня есть datagridview с именем datagridview1 inculude table from ms sql. Я хочу выбрать ячейку, а затем выбрать другую, не отменяя первую ячейку, которую я выбрал раньше. Как я могу это сделать?Выбор ячеек в Datagridview с помощью vb.net

Я попробовал этот код, который ничего не выбирающий:

Private Sub DataGridView1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick 
    If DataGridView1.CurrentCell.Selected = True Then 
     DataGridView1.CurrentCell.Selected = False 
    Else 
     DataGridView1.CurrentCell.Selected = True 
    End If 

End Sub 

Любые предложения?

+0

В чем смысл другого? Вы бы установили свойство Selected текущей ячейки на то же самое значение, которое оно уже есть. Непонятно, что вы пытаетесь сделать здесь. –

+0

Я хочу снять выделение, если ячейка уже выбрана. Щелчок по выбранной ячейке должен отменить выбор. Но всякий раз, когда ячейка выбрана, остальные ячейки, которые были выбраны, должны оставаться выбранными. – Macukadam

+0

Почему бы просто не использовать клавишу Ctrl, которая является стандартной в окнах для многоэлементных ячеек. –

ответ

0

Я предполагаю, что вы можете свернуть свой собственный datagridview и переопределить события OnCellMouseDown и OnCellMouseUp, чтобы дать вам этот эффект без отключения мыши от выбранных элементов.

Создайте новый класс в своем решении и наследовать DataGridView

Public Class MyDataGridView 
    Inherits DataGridView 

    Protected Overrides Sub OnCellMouseDown(e As DataGridViewCellMouseEventArgs) 
     Me.Rows(e.RowIndex).Cells(e.ColumnIndex).Selected = Not Me.Rows(e.RowIndex).Cells(e.ColumnIndex).Selected 
    End Sub 

    Protected Overrides Sub OnCellMouseUp(e As DataGridViewCellMouseEventArgs) 
    End Sub 
End Class 

Это должно отменить из того, что происходит, когда процесс события MouseClick полностью, который в стандартной камере, не отменит предыдущий выбор (если только CTRL используется ключ).

Добавьте этот код, скомпилируйте его, и вы должны увидеть в верхней части панели инструментов элемент управления MyDataGridView. Перетащите его в свою форму, заполните его и отпустите.

+0

Спасибо .. Это то, что я искал !! – Macukadam

+0

Не удалось загрузить элемент панели инструментов «MyDataGridView». Он будет удален из панели инструментов. Я получаю эту ошибку при попытке перетащить элемент управления MyDataGridView в мою форму. – Macukadam

+0

Я быстро просмотрел ошибку и нашел эту [другую тему] (http://stackoverflow.com/questions/4800388/cannot-place-user-control-on-form). Вы можете увидеть, относится ли это к вашему приложению. –

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