Adding checkbox to mshflexgrid

本文介绍了使用MSHFlexGrid进行数据展示和交互的方法,包括如何加载数据、设置样式及实现单元格点击事件处理等。提供了具体的VBA代码示例。


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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值