Я не уверен, что вы можете считать выбранные столбцы таким образом.В любом случае, вот способ использования аргументов события для достижения того, чего, я думаю, вы пытаетесь достичь:
Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
If DataGridView1.Columns.GetColumnCount(DataGridViewElementStates.Selected) > 3 Then
MsgBox("You cannot select more than 3 columns.")
DirectCast(sender, System.Windows.Forms.DataGridView).Columns(e.ColumnIndex).Selected = False
End If
End Sub
Я использовал DirectCast
, чтобы заставить отправителя вести себя как представление данных (чтоэто так) потому что таким образом я мог бы прикрепить это событие к нескольким различным представлениям dtagrid, но если вам не нравится эта форма, вы всегда можете использовать DataGridView1.Columns(e.ColumnIndex).Selected = False
.
Кроме того, я использую e.ColumnIndex
, чтобы отменить выбор последнего столбцапользователь нажал, потому что я думал, что это было то, что вы пытались сделать, но вы можете изменить этот ассортимент на что-то более подходящее вашим потребностям, поскольку теперь вы знаете, как отменить выбор столбцов.
Получайте удовольствие!