在VB中如何设置MSFlexGrid的某一特定列的单元格的文字的颜色

例如我想把显示结果的第六列的所有单元格的文字的颜色设置为蓝色,怎么设置,求指点!!... 例如我想把显示结果的第六列的所有单元格的文字的颜色设置为蓝色,怎么设置,求指点!! 展开
 我来答
freeeeeewind
推荐于2016-10-20 · TA获得超过1万个赞
知道大有可为答主
回答量:3227
采纳率:94%
帮助的人:1342万
展开全部

指定MSFlexGrid特定列的序号,然后依次设置属于这个列单元格文字的颜色。

实现方法如下:

(1)新建一个VB6工程

(2)在Form1上布置一个MSFlexGrid,一个TextBox和Command

Text1用来指定要改变颜色列的序号

(3)窗体代码

Option Explicit

Private Sub Command1_Click()
    Dim currRow As Integer, currCol As Integer
    With MSFlexGrid1
    
        '记录MSFlexGrid1当前单元格所在的行与列
        currRow = .Row
        currCol = .Col
        
        '改变指定列(由Text1指定列的序号)
        Dim r As Integer, c As Integer
        
        '打开错误陷阱
        On Error GoTo ErrProc

        '获取指定的列
        c = Val(Text1.Text)
        '设置为当前列
        .Col = c
        '遍历各行,并改变文本的颜色
        For r = 0 To .Rows - 1
            '设置当前行
            .Row = r
            ' 设置有当前行和当前列指定单元格的文本颜色为红色
            .CellForeColor = vbRed
            .CellFontBold = True
        Next
        
        '恢复先前指定的单元格
        .Row = currRow
        .Col = currCol
    End With
ErrProc:
End Sub

Private Sub Form_Load()
    '设置MSFlexGrid1的行列数,并用数据
    '填充单元格
    With MSFlexGrid1
        .Rows = 5
        .Cols = 5
        Dim r As Integer, c As Integer
        For r = 0 To .Rows - 1
            For c = 0 To .Cols - 1
                .TextMatrix(r, c) = "第" & r & "行" & "第" & c & "列"
            Next
        Next
    End With
    
    Text1.Text = ""
    Command1.Caption = "改变颜色"
End Sub

(4)运行效果

改变第1列的颜色

改变第4列的颜色

砖工努力男孩
2012-11-07
知道答主
回答量:10
采纳率:0%
帮助的人:7358
展开全部
我也在做同样的事情,不过我用的MFC做的,
m_FGrid.SetCol(2);
m_FGrid.SetCellBackColor(RGB(212,212,212));
这样就可以使得第2列的单元格变灰,同理也先可以设置
m_FGrid.SetRow(2);
m_FGrid.SetCol(2);
m_FGrid.SetCellBackColor(RGB(212,212,212));
这样可以使得第(2,2)的单元格变灰。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风雪剑无痕
2012-05-21 · TA获得超过1253个赞
知道大有可为答主
回答量:1691
采纳率:100%
帮助的人:1675万
展开全部
MSHFlexGrid1.CellForeColor
追问
请问某一特定列如何表示呢?比如说第六列?
追答
Private Sub Form_Load()
'Dim i%

For i = MSFlexGrid1.FixedRows To MSFlexGrid1.Rows - 1
MSFlexGrid1.row = i
MSFlexGrid1.Col = MSFlexGrid1.Cols - 1 '指定每一行的最后一列,如果你要指定某一列就改成MSFlexGrid1.Col = 6 ' 指定第六列,要注意数据区有足够的列数,不然会出错
MSFlexGrid1.Text = Time '这里是做测试的文本,用的时候去掉这一整行代码
MSFlexGrid1.CellForeColor = vbBlue '显示为蓝色
Next
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式