可以的. Option Explicit Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Sub Form_Load() MSFlexGrid1.Rows = 20 MSFlexGrid1.Cols = 8 MSFlexGrid1.SelectionMode = flexSelectionByRow End SubPrivate Sub MSFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) PostMessage MSFlexGrid1.hwnd, 513, 0, x / Screen.TwipsPerPixelX + y / Screen.TwipsPerPixelY * 65536 End Sub
Private Sub MSHFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) Me.MSHFlexGrid1.Row = Me.MSHFlexGrid1.MouseRow Me.MSHFlexGrid1.ColSel = 0 Me.MSHFlexGrid1.ColSel = Me.MSHFlexGrid1.Cols - 1 End Sub
如果光移动过去不点击,我感觉不大好处理
Option Explicit
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Sub Form_Load()
MSFlexGrid1.Rows = 20
MSFlexGrid1.Cols = 8
MSFlexGrid1.SelectionMode = flexSelectionByRow
End SubPrivate Sub MSFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
PostMessage MSFlexGrid1.hwnd, 513, 0, x / Screen.TwipsPerPixelX + y / Screen.TwipsPerPixelY * 65536
End Sub
Me.MSHFlexGrid1.Row = Me.MSHFlexGrid1.MouseRow
Me.MSHFlexGrid1.ColSel = 0
Me.MSHFlexGrid1.ColSel = Me.MSHFlexGrid1.Cols - 1
End Sub