按条件指定MSHFlexGrid单元格字体颜色

Sub loaddata(sqlselstr As String)
  '根据传递的sql,加载数据到MSHFlexGrid,并按要求显示所要的颜色
 

 dim i as long,irow as long

dim rst as new adodb.recordset

With MSHFlexGrid
    Screen.MousePointer = 11
    rst.Open sqlselstr, dbconn, adOpenKeyset, adLockReadOnly

    If rst.EOF = False Then
     .Clear
     Call loadlitte  '加载标题

     Prg.Visible = True   '显示进度条
    Me.Refresh
      Prg.Max = 100   '显示进度条
      Prg.Value = 0
    .Rows = rst.RecordCount + 1
        irow = 1
        Do While Not rst.EOF
       
          If rst(5) = "A" Then  '设定改变单元格颜色的条件
            .row = irow
           For i = 0 To 17
            .col = i       '指定列
            .CellForeColor = vbBlue  '对列指定颜色
            .TextMatrix(irow, i) = rst(i) & ""
           Next
          Else
            .row = irow
                For i = 0 To 17
                    .col = i  '指定列
                    .CellForeColor = vbBlack   '对列指定颜色
                .TextMatrix(irow, i) = rst(i) & ""

                Next
          End If
            Prg.Value = Prg.Value + 1
            If Prg.Value >= 100 Then
              Prg.Value = 0
            End If
           irow = irow + 1
          rst.MoveNext
        Loop
    Else
      MsgBox "没有找到所要的数据!", vbInformation, "提示..."
      rst.Close
      Set rst = Nothing
       Screen.MousePointer = 0
      Exit Sub
    End If
   
   For irow = 0 To .Rows - 1
        .row = irow
        For i = 0 To .Cols - 1
         .col = i
         If i = 2 Then
         Else
          .CellAlignment = flexAlignCenterCenter '数据居中
         End If
        Next
            Prg.Value = Prg.Value + 1
            If Prg.Value >= 100 Then
              Prg.Value = 0
            End If
    Next
    

     Prg.Visible = False
    rst.Close
    Set rst = Nothing
     Screen.MousePointer = 0
  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控件来实现相同的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值