VB MSHFLEXGRID MSHFLEXGRID 绑定 CHECKBOX

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

 

### 回答1: 要修改MSHFlexGrid单元格背景色,可以使用MSHFlexGrid控件的SetCellBackColor方法。例如,要将第3行、第2列单元格的背景色设置为绿色,可以使用以下代码:MSHFlexGrid1.SetCellBackColor 3, 2, vbGreen ### 回答2: 在VB MSHFlexGrid中修改单元格的背景色可以通过以下步骤实现: 1. 首先,确保你的项目引用了"Microsoft FlexGrid Control"组件,这样在工具箱中才能找到MSHFlexGrid控件。 2. 将MSHFlexGrid控件拖放到窗体上,并进行相应的设置,比如指定宽度、高度和行、列的数量等。 3. 在代码中,使用MSHFlexGrid控件的CellBackColor属性来修改单元格的背景色。通过指定行和列的索引,可以确定要修改的单元格。例如,下面的代码将第2行第3列的单元格背景色设置为红色: MSHFlexGrid1.CellBackColor(2, 3) = vbRed 4. 可以将该代码放在合适的事件中触发,比如在点击按钮或选择下拉框时进行单元格背景色的修改。 需要注意的是,MSHFlexGrid控件的行和列的索引是从0开始的,所以要根据需求来确定具体要修改的单元格的索引。此外,还可以使用其他属性和方法来扩展和修改MSHFlexGrid控件,比如CellForeColor属性来设置单元格的前景色、CellAlignment属性来设置文本对齐方式等。 使用上述步骤,你就可以在VB MSHFlexGrid中修改单元格的背景色了。 ### 回答3: 在VB中,可以使用MSHFlexGrid控件来创建一个网格视图,并对单元格的背景色进行修改。下面是一个示例代码来实现这个功能: 首先,在VB的窗体设计器中添加一个MSHFlexGrid控件,可以通过拖拽的方式添加到窗体上。 然后,在窗体的加载事件中,可以设置MSHFlexGrid控件的一些基本属性,例如行数、列数、单元格的宽度和高度等。 接下来,在需要修改背景色的地方,可以使用以下代码: ' 设置要修改背景色的行和列 Dim row As Integer = 1 Dim col As Integer = 1 ' 设置要修改的背景色 Dim color As Integer = RGB(0, 255, 0) ' 这里使用了RGB函数来设置颜色,RGB(红色值,绿色值,蓝色值) ' 修改指定单元格的背景色 MSHFlexGrid1.Col = col MSHFlexGrid1.Row = row MSHFlexGrid1.CellBackColor = color 通过以上代码,就可以将指定单元格的背景色修改为绿色。 如果需要修改多个单元格的背景色,可以通过循环遍历的方式来完成。例如: ' 设置要修改背景色的行范围 Dim startRow As Integer = 1 Dim endRow As Integer = 5 ' 设置要修改背景色的列范围 Dim startCol As Integer = 1 Dim endCol As Integer = 5 ' 设置要修改的背景色 Dim color As Integer = RGB(0, 255, 0) ' 修改指定范围内的单元格的背景色 For row = startRow To endRow For col = startCol To endCol MSHFlexGrid1.Col = col MSHFlexGrid1.Row = row MSHFlexGrid1.CellBackColor = color Next Next 通过以上代码,就可以将指定范围内的所有单元格的背景色修改为绿色。 需要注意的是,MSHFlexGrid控件是一种较为老旧的控件,不再是VB开发中常用的控件。如果在新的VB项目中需要使用类似的网格视图控件,可以考虑使用DataGridView控件来实现相同的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值