Rubrik: Controls · MSFlexGrid/DataGrid | VB-Versionen: VB4, VB5, VB6 | 04.06.03 |
Zellenauswahl im FlexGrid per Rechtsklick Dieser Tipp verrät, wie sich die Zelle, auf der ein Rechtsklick erfolgte, ermitteln und selektieren lässt. | ||
Autor: Dieter Otter | Bewertung: | Views: 16.838 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Im Microsoft FlexGrid-Control wird eine Zelle bekanntlich nur dann selektiert, wenn der User mit der linken Maustaste auf die Zelle klickt. Manchmal soll eine Zelle aber auch per Rechtsklick zur aktiven Zelle werden, um z.B. dann ein PopUp-Menü anzuzeigen.
Nachfolgender Code verrät, wie sich die Zelle ermitteln und selektieren lässt, wenn der User auf diese mit der rechten Maustaste klickt.
Private Sub MSFlexGrid1_MouseUp(Button As Integer, _ Shift As Integer, x As Single, y As Single) ' Rechtsklick? If Button = vbRightButton Then Dim nRow As Long Dim nCol As Long Dim nRowCur As Long Dim nColCur As Long With MSFlexGrid1 ' aktuelle Zelle "merken" nRowCur = .Row nColCur = .Col ' Zelle ermitteln nRow = .MouseRow nCol = .MouseCol ' Erfolgte der Mausklick auf eine existierende ' Zelle im Grid? If nRow >= 0 And nCol >= 0 Then ' Zelle zur aktiven Zelle machen (selektieren) .Row = nRow .Col = nCol If x >= .CellLeft And x <= .CellLeft + .CellWidth And _ y >= .CellTop And y <= .CellTop + .CellHeight Then ' Beispiel: PopUp-Menü anzeigen PopUpMenu myPopUp Else ' ursprüngliche Zelle wieder selektieren .Row = nRowCur .Col = nColCur End If End If End With End If End Sub