关于mshflexgrid固定行的问题

jp1jp2 2009-01-04 11:13:04
大家好!我写了一个单据程序,因单据的列数太多,我想前面三列固定,以免好查看规格来对应后面的数量。程序用TEXT控件邦定MSHFLEXGRID来使用的。程序如下:Private Sub MSHFlexGrid1_Click()
MSHFlexGrid1.FixedCols = 1
If MSHFlexGrid1.Text = "" Then
Text2.Visible = True
Combo1.Visible = False
Text2.Left = MSHFlexGrid1.CellLeft + MSHFlexGrid1.Left
Text2.Top = MSHFlexGrid1.CellTop + MSHFlexGrid1.Top
Text2.Width = MSHFlexGrid1.CellWidth
Text2.Height = MSHFlexGrid1.CellHeight
Text2.SetFocus
Text2.Text = ""
Else
Text2.Visible = True
Combo1.Visible = False
Text2.Left = MSHFlexGrid1.CellLeft + MSHFlexGrid1.Left
Text2.Top = MSHFlexGrid1.CellTop + MSHFlexGrid1.Top
Text2.Width = MSHFlexGrid1.CellWidth
Text2.Height = MSHFlexGrid1.CellHeight
Text2.Text = MSHFlexGrid1.Text
End If
end sub


Private Sub MSHFlexGrid1_Scroll()
MSHFlexGrid1.FixedCols = 4
End Sub

现在是实现了当点击滚动条时前四行是固定了,可是滚动到后面时,点击MSHFLEXGRID里后面的格子时,TEXT他会自动弹到第一列的位置,不是我想要后面的位置,如我点第十列时,TEXT是出现在第一列,不是我想要的第十列,请高手帮忙看一下,谢了
...全文
100 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ComingVB 2009-01-14
  • 打赏
  • 举报
回复
with MSHFlexGrid1
Text2.Move .Left + .CellLeft, _
.Top + .CellTop, _
.ColWidth(.Col), _
.RowHeight(.Row)
end with

用 Move 比较快,而且不会闪烁。
chenwei316 2009-01-13
  • 打赏
  • 举报
回复
用了固定行的话你肯定就需要重新计算了,不能用长乘宽了,因为根本可能就不在原来的第10列的位置了。
你应该用点击事件带的X,Y参数,然后计算实际位置。

1,451

社区成员

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

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