Klickt der Anwender mit der rechten Maustaste auf einen Tab-Reiter des TabControls wird diese bei linker Maustaste autom. geöffnet. Bei rechter Maustaste hingegen passiert gar nichts. Auch weiß man nicht, auf welchem Tab-Reiter geklickt wurde. Mit nachfolgender Funktion lässt sich der Tab-Reiter über das MouseDown-Event anhand der übergebenen Maus-Koordinaten ermitteln: ''' <summary> ''' Ermittelt den Tab-Reiter anhand der übergebenen Mauskoordinaten ''' </summary> ''' <param name="TabControl">TabControl-Objekt</param> ''' <param name="location">Mauskoordinaten (Point)</param> ''' <returns>Index des Tab-Reiters beginnend bei 1 ''' oder 0, wenn sich die Koordinaten außerhalb der Tab-Reiter befinden</returns> Public Function GetTabPageFromXY(ByVal TabControl As TabControl, _ ByVal location As Point) As Integer With TabControl1 For i As Integer = 0 To .TabCount - 1 ' Prüfen, ob Mausposition innerhalb des Tab-Rechtecks liegt If .GetTabRect(i).Contains(location) Then Return (i + 1) End If Next End With ' Defaultwert, wenn die Koordinaten außerhalb der Tab-Reiter liegen Return (0) End Function Aufrufbeispiel: Private Sub TabControl1_MouseDown(ByVal sender As Object, _ ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabControl1.MouseDown ' Bei Mausklick, Tab-Reiter abfragen If e.Button = Windows.Forms.MouseButtons.Right Then Dim nTab As Integer = GetTabPageFromXY(TabControl1, e.Location) If nTab > 0 Then MsgBox("Rechtsklick auf TabPage Nr. " & nTab) End If End If End Sub |