Adding checkbox to mshflexgrid

    技术2022-05-11  6

    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 LongWith 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 ^ 3Next.RemoveItem 1

    For i = 1 To 50.Row = i.Col = 0.CellFontName = "Wingdings 2".Text = Chr(IIf(i Mod 2 = 0, 82, 42))NextEnd 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 SubPrivate 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.


    最新回复(0)