请教:在MSFlexGrid中如何用代码写高亮行和高亮列.谢谢!!!

ahbc123 2003-02-22 08:20:12
请教:在MSFlexGrid中如何用代码写高亮行和高亮列.谢谢!!!
如设置第3行或第4列为高亮行或高亮列.
另请教如何输入个向上和向下的箭头!,谢谢!!!
...全文
101 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
13161795500 2003-02-23
  • 打赏
  • 举报
回复
Dim AA As Integer
Dim BB As Integer
Private Sub Form_Load()
Text1.Text = ""
MSFlexGrid1.Cols = 10
MSFlexGrid1.Rows = 10
AA = 0
BB = 0
End Sub

Private Sub MSFlexGrid1_Click()
If MSFlexGrid1.Row = AA Then Exit Sub
BB = MSFlexGrid1.Row
MSFlexGrid1.Row = AA
For i = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = vbWhite
MSFlexGrid1.CellForeColor = vbBlack
Next i
MSFlexGrid1.Row = BB
For i = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = vbBlue
MSFlexGrid1.CellForeColor = vbWhite
Next i
AA = BB

End Sub

Private Sub Text1_Change()
If IsNumeric(Text1.Text) = False Then Exit Sub
If MSFlexGrid1.Rows < Val(Text1.Text) Then Exit Sub
MSFlexGrid1.Row = AA
For i = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = vbWhite
MSFlexGrid1.CellForeColor = vbBlack
Next i

MSFlexGrid1.Row = Val(Text1.Text)
For i = 0 To MSFlexGrid1.Cols - 1
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = vbBlue
MSFlexGrid1.CellForeColor = vbWhite
Next i
AA = Val(Text1.Text)
End Sub
ahbc123 2003-02-23
  • 打赏
  • 举报
回复
to:13161795500:在text1里输入(如14),则含14的行成当前行(焦点行,颜色变蓝色),
当用鼠标点击其他行时,焦点就变到含325的行或用鼠标点击的行
在里面有一个问题:当用鼠标点击其他行时,焦点就变到用鼠标点击的行后,含14的行颜色我想变回和其他行一样的颜色,,请教该如何写代码,谢谢!!!
在MSFlexGrid属性中:
突出显示选1 ,焦点区选0,选定模式选1.
代码如下:
Private Sub Form_Load()
Dim i As Integer
MSFlexGrid1.SelectionMode = 1
MSFlexGrid1.HighLight = 1
MSFlexGrid1.BackColor = &H0&
MSFlexGrid1.GridColorFixed = &HC0&
MSFlexGrid1.BackColorSel = vbBlue
MSFlexGrid1.GridColor = &HC0&
MSFlexGrid1.ForeColor = &HFFFFFF


MSFlexGrid1.FixedRows = 1
MSFlexGrid1.FixedCols = 0
MSFlexGrid1.Rows = 10
MSFlexGrid1.Cols = 3
MSFlexGrid1.TextMatrix(0, 0) = "序号"
MSFlexGrid1.TextMatrix(1, 0) = 12
MSFlexGrid1.TextMatrix(1, 1) = 35
MSFlexGrid1.TextMatrix(2, 0) = 32
MSFlexGrid1.TextMatrix(2, 1) = 38
MSFlexGrid1.TextMatrix(3, 0) = 14
MSFlexGrid1.TextMatrix(3, 1) = 86
MSFlexGrid1.TextMatrix(4, 0) = 356
MSFlexGrid1.TextMatrix(4, 1) = 67
MSFlexGrid1.TextMatrix(5, 0) = 325
MSFlexGrid1.TextMatrix(5, 1) = 2333
MSFlexGrid1.TextMatrix(6, 0) = 232334
MSFlexGrid1.TextMatrix(6, 1) = 755
End Sub

Private Sub MSFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

If y >= MSFlexGrid1.RowHeight(0) Then
MSFlexGrid1.BackColor = &H0&
MSFlexGrid1.GridColorFixed = &HC0&
MSFlexGrid1.BackColorSel = vbBlue
MSFlexGrid1.GridColor = &HC0&
MSFlexGrid1.ForeColor = &HFFFFFF
MSFlexGrid1.SelectionMode = 1

End If
End Sub

Private Sub MSFlexGrid1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Integer
If y < MSFlexGrid1.RowHeight(0) Then
MSFlexGrid1.SelectionMode = 2

MSFlexGrid1.ColSel = MSFlexGrid1.Col
MSFlexGrid1.RowSel = MSFlexGrid1.Rows - 1
If MSFlexGrid1.MouseCol = 0 Then

Select Case Button
Case 1
MSFlexGrid1.HighLight = 1
MSFlexGrid1.TextMatrix(0, 0) = "序号A"
MSFlexGrid1.TextMatrix(0, 1) = "MMM"
MSFlexGrid1.Sort = flexSortGenericAscending

Case 2
MSFlexGrid1.HighLight = 1
MSFlexGrid1.TextMatrix(0, 0) = "序号M"
MSFlexGrid1.TextMatrix(0, 1) = "MMM"
MSFlexGrid1.Sort = flexSortGenericDescending
MSFlexGrid1.Col = 0
For i = 0 To MSFlexGrid1.Rows - 1
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = i
MSFlexGrid1.CellBackColor = vbBlue

Next i
End Select
MSFlexGrid1.Row = 1
End If
If MSFlexGrid1.MouseCol = 1 Then
Select Case Button
Case 1
MSFlexGrid1.HighLight = 1
MSFlexGrid1.TextMatrix(0, 0) = "序号"
MSFlexGrid1.TextMatrix(0, 1) = "MNN"
MSFlexGrid1.Sort = flexSortGenericAscending

Case 2
MSFlexGrid1.HighLight = 1
MSFlexGrid1.TextMatrix(0, 0) = "序号"
MSFlexGrid1.TextMatrix(0, 1) = "MMM"
MSFlexGrid1.Sort = flexSortGenericDescending

End Select
MSFlexGrid1.Row = 1
End If
End If
If y >= MSFlexGrid1.RowHeight(0) Then
MSFlexGrid1.BackColor = &H0&
MSFlexGrid1.GridColorFixed = &HC0&
MSFlexGrid1.BackColorSel = vbBlue
MSFlexGrid1.GridColor = &HC0&
MSFlexGrid1.ForeColor = &HFFFFFF
MSFlexGrid1.SelectionMode = 1


End If

End Sub


Private Sub Text1_KeyPress(KeyAscii As Integer)

Dim r As Integer
Dim i As Integer
If KeyAscii = vbKeyReturn Then
With MSFlexGrid1
For r = 1 To .Rows - 1
If Trim(.TextMatrix(r, 0)) = Trim(Text1.Text) Then
.Row = r
.RowSel = r
.ColSel = .Cols - 1

MSFlexGrid1.Row = r

For i = 0 To MSFlexGrid1.Cols - 1
.Row = r
.Col = i
MSFlexGrid1.CellBackColor = vbBlue

Next i
MSFlexGrid1.TopRow = MSFlexGrid1.Row

Exit Sub
End If
Next r
End With
End If
End Sub


13161795500 2003-02-23
  • 打赏
  • 举报
回复
MSFlexGrid.Row=3
For i=0 to MSFlexGrid.Cols-1
MSFlexGrid.Col=i
MSFlexGrid.CelBackColor=RGB(0,0,255)
MSFlexGrid.CelForeColor=RGB(255,255,255)
Next i
ahbc123 2003-02-23
  • 打赏
  • 举报
回复
谢谢!!! 13161795500和 northwolves!!!
to:13161795500:
还是只显示一个单元的背景色,而不是一行的,请您帮助,谢谢!!!
northwolves 2003-02-22
  • 打赏
  • 举报
回复
Text1.Text = Chr("&HA1FC") & Chr("&HA1FD")
13161795500 2003-02-22
  • 打赏
  • 举报
回复
MSFlexGrid.Row=3
For i=0 to MSFlexGrid.Cols-1
MSFlexGrid.CelBackColor=RGB(0,0,255)
MSFlexGrid.CelForeColor=RGB(255,255,255)
Next i

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧