我用这个来选中行Private Sub RowColor2(i As Long, q As Long) Dim n As Long With MSHFlexGrid2 For n = 1 To .Cols - 1 .row = i .col = n .CellBackColor = &HC0FFFF If q > 0 And i <> q Then .row = q .CellBackColor = &HFFFFFF End If Next n q = i .row = i End With End Sub
Private Sub MSHFlexGrid2_Click() Call RowColor2(MSHFlexGrid2.row, q) End Sub 不过应该是和这个没有关系,因为我之前没有用这代码,就用控件自带的点击选中,也会出现这样的情况,第一条记录添加后,我点这格,它会选中另一格
Private Sub MSHFlexGrid2_Click() datapos = MSHFlexGrid2.RowSel - 1 rs.MoveFirst rs.Move datapos Call PaintBlue End Sub
Private Sub PaintBlue() MSHFlexGrid2.Row = datapos + 1 For k = 0 To 3 MSHFlexGrid2.Col = k MSHFlexGrid2.CellForeColor = QBColor(15) MSHFlexGrid2.CellBackColor = QBColor(1) Next k End Sub
要选中某行很简单啊,直接
MSHFlexGrid2.SetFocus
MSHFlexGrid2.Row = 行数 就是了
我用这个来选中行Private Sub RowColor2(i As Long, q As Long)
Dim n As Long
With MSHFlexGrid2
For n = 1 To .Cols - 1
.row = i
.col = n
.CellBackColor = &HC0FFFF
If q > 0 And i <> q Then
.row = q
.CellBackColor = &HFFFFFF
End If
Next n
q = i
.row = i
End With
End Sub
Private Sub MSHFlexGrid2_Click()
Call RowColor2(MSHFlexGrid2.row, q)
End Sub
不过应该是和这个没有关系,因为我之前没有用这代码,就用控件自带的点击选中,也会出现这样的情况,第一条记录添加后,我点这格,它会选中另一格
datapos = MSHFlexGrid2.RowSel - 1
rs.MoveFirst
rs.Move datapos
Call PaintBlue
End Sub
Private Sub PaintBlue()
MSHFlexGrid2.Row = datapos + 1
For k = 0 To 3
MSHFlexGrid2.Col = k
MSHFlexGrid2.CellForeColor = QBColor(15)
MSHFlexGrid2.CellBackColor = QBColor(1)
Next k
End Sub