Rubrik: Controls · sev-Controls | VB-Versionen: VB6 | 23.12.08 |
![]() ![]() Eine Funktion, mit der sich prüfen lässt, auf welchen Tab-Reiter ein Mausklick erfolgte | ||
Autor: ![]() | Bewertung: ![]() ![]() ![]() ![]() ![]() | Views: 9.020 |
https://www.tools4vb.com | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | ![]() |
Klickt der Anwender mit der rechten Maustaste auf einen Tab-Reiter des sevTabStrip-Controls wird wie bei der linken Maustaste auch, das MouseDown-Event ausgelöst. Leider verfügt das Event aber über keinen Parameter, der angibt, auf welchen Reiter der Mausklick erfolgte.
Mit nachfolgender Funktion lässt sich der Tab-Reiter jedoch anhand der übergebenen Maus-Koordinaten ermitteln:
' Tab-Reiter anhand Mausposition ermitteln Private Function GetTabFromXY(oTab As Object, _ ByVal x As Single, ByVal y As Single) As Long Dim i As Long With oTab.Tabs ' alle Tab-Objekte durchlaufen For i = 1 To .Count With .Item(i) ' jetzt prüfen, ob angegebene Mausposition ' innerhalb des Reiter-Rechtecks liegt If x >= .Left And x < .Right And y >= .Top And y <= .Bottom Then GetTabFromXY = i: Exit For End If End With Next i End With End Function
Aufrufbeispiel:
Private Sub sevTabStrip1_MouseDown(Button As Integer, Shift As Integer, _ x As Single, y As Single) ' Bei Rechtsklick, prüfen, auf welchen Tab-Reiter geklickt wurde If Button = vbRightButton Then Dim nTab As Long nTab = GetTabFromXY(sevTabStrip1, x, y) If nTab > 0 Then MsgBox "Rechtsklick auf Tab-Reiter: " & CStr(nTab) End If End If End Sub