新手,刚接触VB,帮忙!!
1.打开一含MsFlexGrid控件的窗口,在MsFlexGrid中填有数据。如何使MsFlexGrid中第一行自动被选中,且选中行所有列的背景色为蓝色,当按上下键时选中行和背景色随之变化。
2.往MsFlexGrid中填数据时,当行数超过MsFlexGrid能显示范围时,如何使之显示后面数据,隐藏上面的数据.

解决方案 »

  1.   

    Option ExplicitDim lngOldRow As LongPrivate Sub Command1_Click()
        Dim i As Long
        
        For i = 1 To MSFlexGrid1.Rows - 1
            MSFlexGrid1.Row = i
            If MSFlexGrid1.CellBackColor = vbRed Then MsgBox "第" & i & "此行是红色"
        Next
    End SubPrivate Sub Form_Load()
        Dim i As Long
        
        MSFlexGrid1.Rows = 10: MSFlexGrid1.Cols = 5
        
        For i = 1 To MSFlexGrid1.Rows - 1
            MSFlexGrid1.TextMatrix(i, 1) = "aaaa" & i
        Next    MSFlexGrid1.SelectionMode = flexSelectionByRow
    End SubPrivate Sub MSFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
        With MSFlexGrid1
            If y < .RowPos(.Row) Then MsgBox "单击固定行"
        End With
    End SubPrivate Sub MSFlexGrid1_SelChange()
        MSFlexGrid1.Redraw = False
        Dim i As Long, lngNewRow As Long
        
        lngNewRow = MSFlexGrid1.Row
        MSFlexGrid1.Row = lngOldRow
        For i = 1 To MSFlexGrid1.Cols - 1
            MSFlexGrid1.Col = i
            MSFlexGrid1.CellBackColor = vbWhite
        Next
        
        MSFlexGrid1.Row = lngNewRow
        For i = 1 To MSFlexGrid1.Cols - 1
            MSFlexGrid1.Col = i
            MSFlexGrid1.CellBackColor = vbRed
        Next
        MSFlexGrid1.Redraw = True
        
        lngOldRow = lngNewRow
    End Sub