MSHflexgrid的无数据BUG

jainkai 2017-05-23 10:25:33
话说MSHflexgrid的BUG还是挺多的

我最受不了的一点就是 查询出来无数据后,再查询有数据出来时,你用鼠标去选中行,它就乱跳了,
根本不是你要点的那一行,,
只要有一次没数据,就激发了这个bug,必须关掉页面再重新打开才行,
大家说说有没有什么好的方法没?
...全文
397 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jainkai 2018-07-17
  • 打赏
  • 举报
回复
直接换VSFLEXGRID完美解决
舉杯邀明月 2017-05-27
  • 打赏
  • 举报
回复
引用 6 楼 jainkai 的回复:
. . . . . . 试了 可以加载 但是编程的功能不能用了 还没研究透彻呢 自己发现了一个神奇的功能 避免这个BUG UNLOAD ME FORM1.SHOW 也算了解决了这个BUG
什么叫做“编程的功能不能用”? 用Unload Me 然后Form1.Show,就叫“神奇”了?比这神奇的事还多着呢。
jainkai 2017-05-27
  • 打赏
  • 举报
回复
引用 5 楼 Chen8013 的回复:
[quote=引用 4 楼 jainkai 的回复:] 我想了一个思路,每次查询都动态创建一个MSHFLEXGRID, 或许有用(不用数组控件) 但是貌似MSHFLEXGRid不是默认自带的 ,报错711啊 度娘都没有找到方法
这问题简直太好搞定了。
' 设计时,在窗体上任意画一个MSHFlexGrid控件,把Visible设置为False(隐藏)
Option Explicit

Private WithEvents GRD As MSHFlexGrid     ' 可以事先设计好事件代码
Private mlLoadFlag   As Long  ' 标识是否动态加载

Private Sub Command1_Click()
   If (mlLoadFlag) Then Controls.Remove GRD
   Set GRD = Controls.Add("MSHierarchicalFlexGridLib.MSHFlexGrid", "txtTotal")
   GRD.Move 60, 0, 4500, 5100 ' 调整位置及大小
   GRD.Visible = True
   mlLoadFlag = vbTrue        ' 标识已经加载
End Sub

Private Sub Form_Load()
   mlLoadFlag = 0&
End Sub

Private Sub Form_Unload(Cancel As Integer)
   ' 这句可用可不用
   If (mlLoadFlag) Then Controls.Remove GRD
End Sub
[/quote] 试了 可以加载 但是编程的功能不能用了 还没研究透彻呢 自己发现了一个神奇的功能 避免这个BUG UNLOAD ME FORM1.SHOW 也算了解决了这个BUG
jainkai 2017-05-24
  • 打赏
  • 举报
回复
我想了一个思路,每次查询都动态创建一个MSHFLEXGRID, 或许有用(不用数组控件) 但是貌似MSHFLEXGRid不是默认自带的 ,报错711啊 度娘都没有找到方法
jainkai 2017-05-24
  • 打赏
  • 举报
回复
楼上两位,,试了 问题依旧
舉杯邀明月 2017-05-24
  • 打赏
  • 举报
回复
引用 4 楼 jainkai 的回复:
我想了一个思路,每次查询都动态创建一个MSHFLEXGRID, 或许有用(不用数组控件) 但是貌似MSHFLEXGRid不是默认自带的 ,报错711啊 度娘都没有找到方法
这问题简直太好搞定了。
' 设计时,在窗体上任意画一个MSHFlexGrid控件,把Visible设置为False(隐藏)
Option Explicit

Private WithEvents GRD As MSHFlexGrid     ' 可以事先设计好事件代码
Private mlLoadFlag   As Long  ' 标识是否动态加载

Private Sub Command1_Click()
   If (mlLoadFlag) Then Controls.Remove GRD
   Set GRD = Controls.Add("MSHierarchicalFlexGridLib.MSHFlexGrid", "txtTotal")
   GRD.Move 60, 0, 4500, 5100 ' 调整位置及大小
   GRD.Visible = True
   mlLoadFlag = vbTrue        ' 标识已经加载
End Sub

Private Sub Form_Load()
   mlLoadFlag = 0&
End Sub

Private Sub Form_Unload(Cancel As Integer)
   ' 这句可用可不用
   If (mlLoadFlag) Then Controls.Remove GRD
End Sub
of123 2017-05-23
  • 打赏
  • 举报
回复
试试不要让窗体启动时的焦点缺省落在 MSHFlexGrid 上。比如,让其他控件的 Index 为 0。
舉杯邀明月 2017-05-23
  • 打赏
  • 举报
回复
如果在“查询”之前,先把MSHflexgrid的内容清空、再执行查询,会是什么效果呢?

1,453

社区成员

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

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