在VB中如何设置MSFlexGrid的某一特定列的单元格的文字的颜色
3个回答
展开全部
指定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列的颜色
展开全部
我也在做同样的事情,不过我用的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)的单元格变灰。
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)的单元格变灰。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询