Не используйте событие MouseClick
, потому что есть другое событие, более подходящее для этой цели:
(Примечание: отредактировано после того, как ОП опубликовал комментарий.)
TabControl
имеет свойство SelectedIndex
. Это нулевой номер выбранной в данный момент вкладки. (Существует также другое свойство, называемое SelectedTab
, непосредственно ссылающееся на выбранный объект вкладки.)
Вы можете привязать обработчик события к событию SelectedIndexChanged
, чтобы получать уведомления, когда пользователь выбирает другую вкладку:
Private Sub MyTabControl_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As System.EventArgs) _
Handles MyTabControl.SelectedIndexChanged
Dim indexOfSelectedTab As Integer = MyTabControl.SelectedIndex
Dim selectedTab As System.Windows.Forms.TabPage = MyTabControl.SelectedTab
...
End Sub
(Обратите внимание, что может хочет дополнительно защитить свой код от случаев, когда SelectedIndex
имеет недопустимое значение, например, -1
.)
Редактировать (добавлено после комментария ОП) :
Если SelectedIndexChanged
не работает для вас, потому что вам нужно перехватить действие пользователя для всех кнопок мыши, вы можете использовать метод GetTabRect
из TabControl
, например:
Private Sub MyTabControl_MouseClick(sender As Object, _
e As System.Windows.Forms.MouseEventArgs) _
Handles MyTabControl.MouseClick
...
For tabIndex As Integer = 0 To MyTabControl.TabCount - 1
If MyTabControl.GetTabRect(tabIndex).Contains(e.Location) Then
... ' clicked on tab with index tabIndex '
End If
Next
...
End Sub