Adding checkbox to mshflexgrid
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
|  | Attachment: |  | CheckBox.zip (1 KB) | 
As more easily be coded,mine is the better.
 
                     
                    
                 
                    
                 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号