Private Sub MSHFlexGrid1_Click() If MSHFlexGrid1.Col = 0 Then MSHFlexGrid1.Text = Chr(124 - Asc(MSHFlexGrid1.Text)) End Sub
Private Sub Form_Load() Dim i As Long With MSHFlexGrid1 .FixedCols = 0 .Cols = 4 .TextArray(0) = "Flag" .TextArray(1) = "i" .TextArray(2) = "i^2" .TextArray(3) = "i^3" For i = 1 To 50 .AddItem vbTab & i & vbTab & i ^ 2 & vbTab & i ^ 3 Next .RemoveItem 1
For i = 1 To 50 .Row = i .Col = 0 .CellFontName = "Wingdings 2" .Text = Chr(IIf(i Mod 2 = 0, 82, 42)) Next End With
End Sub
Another method:
Option Explicit
Dim strChecked As String
Private Sub Form_Load() Dim i As Variant, ms_rows As Integer ' Start building the Grid
ms_rows = 20 ' This is the number of rows to print out With MSFlexGrid1 .Row = 0 .Col = 0 .Rows = ms_rows + 1 'We add 1 to ensure we get all the rows .Cols = 2 .ColWidth(0) = 250 ' CheckBox column .ColWidth(1) = 1440 ' Index column End With
' Now build the Grid
For i = 0 To 20 'm_rows - 1 With MSFlexGrid1 .Row = i: .Col = 0: .CellPictureAlignment = 4 ' Align the checkbox Set .CellPicture = picUnchecked.Picture ' Set the default checkbox picture to the empty box .TextMatrix(i, 1) = i End With Next End Sub Private Sub MSFlexGrid1_Click() Dim oldx, oldy, cell2text As String, strTextCheck As String
' Check or uncheck the grid checkbox With MSFlexGrid1 oldx = .Col oldy = .Row If MSFlexGrid1.Col = 0 Then If MSFlexGrid1.CellPicture = picChecked Then Set MSFlexGrid1.CellPicture = picUnchecked .Col = .Col + 1 ' I use data that is in column #9, usually an Index or ID # strTextCheck = .Text strChecked = Replace(strChecked, strTextCheck & ",", "") Debug.Print strChecked Else Set MSFlexGrid1.CellPicture = picChecked .Col = .Col + 1 strTextCheck = .Text strChecked = strChecked & strTextCheck & "," Debug.Print strChecked End If End If .Col = oldx .Row = oldy End With End Sub
|