MSHFlexGrid 控件中怎麼實現以下效果(像Excel和MSSQL-QUERY查詢結果中選中一行時的效果一樣)
1. 點擊固定列(0列)時能把全行給選定
2. 當最左列不是第1列時(列數較多橫向滑動條有滾動)要保持最左列不發生變化
3. 屏幕視覺上沒有閃的感覺
                             謝謝!!!

解决方案 »

  1.   

    1. 把mshflexgrid的 selectionmode 属性设置为2 ,即flexselectionbycolumn
    2.把最左列设置为固定列
    3. 闪烁指什么?
      

  2.   

    Private Sub Command1_Click()
        Dim i, j As Long
        With MSHFlexGrid1
            For i = 1 To .Rows - 1
                For j = 1 To .Cols - 1
                    If j Mod 2 = 0 Then
                        .TextMatrix(i, j) = "a"
                    Else
                        .TextMatrix(i, j) = "b"
                    End If
                Next j
            Next i
        End With
    End SubPrivate Sub MSHFlexGrid1_RowColChange()
        Dim i, j As Long
        Dim iRow As Long
        
        With MSHFlexGrid1
            iRow = .Row  '---------------------'選中的行
            .Col = 0
            For i = 1 To .Rows - 1
                .Row = i
                For j = 1 To .Cols - 1
                    .Col = j    '----------列
                    .CellBackColor = RGB(255, 255, 255)  '原來的顏色
                Next j
            Next i
        End With
        
        With MSHFlexGrid1
            .Row = iRow      '---------------------'選中的行
            For j = 1 To .Cols - 1
                .Col = j     '--------------列
                .CellBackColor = RGB(0, 200, 100) '選中後的顏色
            Next j
        End WithEnd Sub
      

  3.   

    樓上這個方法不行,我的行有 10K 行 120 列(有些列的寬為0)這樣以下語句運行時間長啊! With MSHFlexGrid1
            iRow = .Row  '---------------------'選中的行
            .Col = 0
            For i = 1 To .Rows - 1
                .Row = i
                For j = 1 To .Cols - 1
                    .Col = j    '----------列
                    .CellBackColor = RGB(255, 255, 255)  '原來的顏色
                Next j
            Next i
        End With