MSHFlexGrid 控件问题
我查出结果后放入结果集中
MSHFlexGrid 控件 的click事件怎样得到当前网格的行和列。
lngRowPos = MSHFGridSpecialty.Row '行号
lngColPos = MSHFGridSpecialty.Col '列号
MsgBox "行" + Str(lngRowPos)
MsgBox "列" + Str(lngColPos)
在我的查询结果有下拉条是正确,没有是错误。why?
问题点数:50、回复次数:13Top
1 楼shuaishen12(12)回复于 2002-06-26 14:50:57 得分 10
lngRowPos = MSHFGridSpecialty.mouseRow '行号
lngColPos = MSHFGridSpecialty.mouseCol '列号Top
2 楼wts(天胜)回复于 2002-06-26 14:51:37 得分 10
你为什么要用Str这个函数呢?在这里没有必要啊?
并且没有太明白你的意思!能说得清楚一些吗?Top
3 楼wts(天胜)回复于 2002-06-26 14:54:13 得分 0
这样是否可以?
IngRowPos=MSHFGridSpecialty.Rows
lngColPos= MSHFGridSpecialty.ColsTop
4 楼wts(天胜)回复于 2002-06-26 15:00:32 得分 0
这样应该可以了!
lngRowPos = MSHFGridSpecialty.Rowsel '行号
lngColPos = MSHFGridSpecialty.Colsel '列号Top
5 楼liyunsong2000(我选择,我喜欢)回复于 2002-06-26 15:03:48 得分 10
MsgBox "行" + Str(lngRowPos)
MsgBox "列" + Str(lngColPos)
为什么用“+” 应该用 "&"
Top
6 楼pl5th2001(白牙)回复于 2002-06-26 15:09:37 得分 0
同意楼上另外本来就对了,干嘛还要问呢不明白你的意思Top
7 楼ypyao85(云)回复于 2002-06-26 15:13:28 得分 0
Option Explicit
Dim lRow, lCol
Private Sub MSHFlexGrid1_Click()
lRow = MSHFlexGrid1.Row
lCol = MSHFlexGrid1.Col
MsgBox "Rows:" & lRow
MsgBox "Cols:" & lCol
End Sub
??怎么会有问题呢?Top
8 楼post_man()回复于 2002-06-26 15:23:03 得分 10
为什么MSHFlexGrid 控件,在显示的记录数不够到有滚动条时,用mouse单击某一条记录,而得到的行号是不对的[包括得到的单元的内容也不对]。
程序在MSHFlexGrid1_Click()的单击事件中
strTempText = MSHFlexGrid1.Text
lngRowPos = MSHFlexGrid1.Row '行号
Top
9 楼post_man()回复于 2002-06-26 15:24:54 得分 0
当显示的记录数够到有滚动条时,一切都正常了[用vb6]Top
10 楼bill9(bill9)回复于 2002-06-26 15:42:43 得分 10
1. lngRowPos = MSHFGridSpecialty.mouseRow
lngColPos = MSHFGridSpecialty.mouseCol
应该没问题.
但要注意你若在调试时设置了断点或程序因错误而中断,此MOUSEROW.MOUSECOL
均会变得无意义,因为一失去焦点,MOUSEROW,MOUSECOL就不对了.
2.若使用以下语句:
lngRowPos = MSHFGridSpecialty.Row '行号
lngColPos = MSHFGridSpecialty.Col '列号
只要中间没有别的调用改变ROW.COL的值也没关系,若此前有别的处理,应该用变量将这两个值先保存.不过在空表的情况下且设置了固定行或固定列时,此时点击固定行或固定列程序会报错退出.
Top
11 楼randyzd(镝镝)回复于 2002-06-26 15:55:03 得分 0
非常感谢,但是为什么
MSHFlexGrid 控件中,在显示的记录数很少,没有滚动条时,用mouse单击某一条记录,而得到的行号是不对的。
而记录多时,有滚动条时,,得到的行号又正确了?
着急呀!!!!!!!!!!
Top
12 楼bill9(bill9)回复于 2002-06-26 16:30:40 得分 0
这是因为记录少时单击表格,有时单击在表格的非记录区,此时行号肯定不对.也不是所有的单击得到的行号不对.一般是在单击最后一行或固定行或固定列时出错.
建议你最好使用MOUSEROW.MOUSECOL,但注意:调试时不能在该语句前高置断点.Top
13 楼post_man()回复于 2002-06-26 16:59:42 得分 0
问题依旧,记录数不够到有垂直方向滚动条时,不正常。[记录1、2行号,返回的行值都一样]
记录数够到有垂直方向滚动条时,正常。
程序在MSHFlexGrid1_Click()的单击事件中
使用的语句
strTempText = MSHFlexGrid1.Text
lngRowPos = MSHFlexGrid1.Row '行号
或者
lngRowPos = MSHFlexGrid1.mouseRow '行号Top
14 楼bill9(bill9)回复于 2002-06-26 17:16:54 得分 0
不可能吧?我用的MSHFlexGrid控件少说也有几十个,每次一进入CLICK事件就将ROW,COL或MOUSEROW,MOUSECOL用变量保存,需要时再调用变量,没看到出错啊?Top




