一个有趣的VB问题,不知高手能否回答??是Bug吗?

wenky_2000 2004-07-16 04:05:20
并不是非要这么做,只是不明白为什么?
窗体放了一个MSFlexGrid1和Text1
MSFlexGrid1最小行高400,Text1的visble属性Flase

问题:
事件:鼠标点击MSFlexGrid1的单元格,
三种操作:1.设断点于Private Sub MSFlexGrid1_EnterCell和
Private Sub Text1_LostFocus()
2.只设断点Private Sub Text1_LostFocus()
3.不设任何断点

三种操作方式Text1的出现情况不同,
1.Private Sub Text1_LostFocus()根本不执行,Text1一直显示
2,3. Private Sub Text1_LostFocus()执行,Text1有时显示

尝试发现去掉
If Me.Text1.Visible And Me.Text1.Enabled Then
Me.Text1.SetFocus
End If
则三种方式一样

关键问题:为什么Private Sub MSFlexGrid1_EnterCell,设断点与不设断点完全不同???


代码如下:
Private Sub Form_Load()
Me.MSFlexGrid1.Cols = 5

Dim i As Integer

For i = 0 To 4
Me.MSFlexGrid1.ColWidth(i) = 2000
Next

For i = 1 To 10
Me.MSFlexGrid1.AddItem ""

Me.MSFlexGrid1.TextMatrix(i, 0) = "aaa"
Me.MSFlexGrid1.TextMatrix(i, 1) = "bbb"
Me.MSFlexGrid1.TextMatrix(i, 2) = "cc"
Me.MSFlexGrid1.TextMatrix(i, 3) = "dd"
Me.MSFlexGrid1.TextMatrix(i, 4) = "fff"
Next
End Sub

Private Sub MSFlexGrid1_EnterCell()
Me.Text1.Visible = True

Me.Text1.Left = Me.MSFlexGrid1.Left + Me.MSFlexGrid1.ColPos(Me.MSFlexGrid1.ColSel) + 50

Me.Text1.Top = Me.MSFlexGrid1.Top + Me.MSFlexGrid1.RowPos(Me.MSFlexGrid1.RowSel) + 50
Me.Text1.Width = Me.MSFlexGrid1.ColWidth(Me.MSFlexGrid1.ColSel)
Me.Text1.Height = Me.MSFlexGrid1.RowHeight(Me.MSFlexGrid1.RowSel)

Me.Text1.Text = Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.RowSel, Me.MSFlexGrid1.ColSel)

CurrRow = Me.MSFlexGrid1.RowSel
CurrCol = Me.MSFlexGrid1.ColSel
If Me.Text1.Visible And Me.Text1.Enabled Then
Me.Text1.SetFocus
End If
End Sub

Private Sub Text1_LostFocus()
Text1.Visible = False
End Sub

...全文
341 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
二师兄的老公 2004-07-22
  • 打赏
  • 举报
回复
焦点问题,调试中断点中断会使焦点发生变化。
姑且可以称之为Bug,像这种Bug很多。
rexyudl 2004-07-20
  • 打赏
  • 举报
回复
偶用MSHFlexGrid没发现你说的问题。

不过不能在ENTERCELL事件里实现你想做的功能。不然会有BUG的!
也就是说当你在当前单元格里点击的时候。文本框是不会显示的!
因为你没有离开当前单元格是不会引发ENTERCELL事件的!
warlord 2004-07-20
  • 打赏
  • 举报
回复
seek "MSFlexGrid"
northwolves 2004-07-17
  • 打赏
  • 举报
回复
我一般写在CLICK 事件中:

Private Sub Form_Load()
Me.MSFlexGrid1.Cols = 5

Dim i As Integer

For i = 0 To 4
Me.MSFlexGrid1.ColWidth(i) = 2000
Next

For i = 1 To 10
Me.MSFlexGrid1.AddItem ""

Me.MSFlexGrid1.TextMatrix(i, 0) = "aaa"
Me.MSFlexGrid1.TextMatrix(i, 1) = "bbb"
Me.MSFlexGrid1.TextMatrix(i, 2) = "cc"
Me.MSFlexGrid1.TextMatrix(i, 3) = "dd"
Me.MSFlexGrid1.TextMatrix(i, 4) = "fff"
Next
End Sub

Private Sub MSFlexGrid1_click()
Me.Text1.Visible = True

Me.Text1.Left = Me.MSFlexGrid1.Left + Me.MSFlexGrid1.ColPos(Me.MSFlexGrid1.ColSel) + 50

Me.Text1.Top = Me.MSFlexGrid1.Top + Me.MSFlexGrid1.RowPos(Me.MSFlexGrid1.RowSel) + 50
Me.Text1.Width = Me.MSFlexGrid1.ColWidth(Me.MSFlexGrid1.ColSel)
Me.Text1.Height = Me.MSFlexGrid1.RowHeight(Me.MSFlexGrid1.RowSel)

Me.Text1.Text = Me.MSFlexGrid1.TextMatrix(Me.MSFlexGrid1.RowSel, Me.MSFlexGrid1.ColSel)

CurrRow = Me.MSFlexGrid1.RowSel
CurrCol = Me.MSFlexGrid1.ColSel
If Me.Text1.Visible And Me.Text1.Enabled Then
Me.Text1.SetFocus
SendKeys "{home}+{end}"
End If
End Sub

Private Sub Text1_change()
MSFlexGrid1.Text = Text1.Text
End Sub
wenky_2000 2004-07-16
  • 打赏
  • 举报
回复
怎么搜呀,汗

大海捞针吗
wenky_2000 2004-07-16
  • 打赏
  • 举报
回复
文章什么标题?
daisy8675 2004-07-16
  • 打赏
  • 举报
回复
mark。。。文档中间有一篇文章,你去搜索一下,不过本身有bug,我写过更正代码的
wenky_2000 2004-07-16
  • 打赏
  • 举报
回复
关键问题:为什么Private Sub MSFlexGrid1_EnterCell,设断点与不设断点完全不同???

疑惑
熊孩子开学喽 2004-07-16
  • 打赏
  • 举报
回复
是要用这个来编辑网格内容对吧。
我写过这样的程序,开始的时候也用TEXT控件,后来就不用了,直接写就是了,在KEYPRESS事件中,配合TEXTMATRIX方法,就可以了
mmcgzs 2004-07-16
  • 打赏
  • 举报
回复
怎么了?
zcm123 2004-07-16
  • 打赏
  • 举报
回复
关注中。。。。。。。
chuting1 2004-07-16
  • 打赏
  • 举报
回复
up
课程源码Gitee地址,码云搜索:IT教头王进 -  bugmgr_demo合适人群: 1、具有一定Python语言基础,有一定的web前端基础,想要深入学习Python Web开发的朋友;2、学习完“跟着王进老师学开发Python篇”、“跟着王进老师学Web前端开发”的朋友;3、有Django框架基础,但是想学习企业级项目实战的朋友;4、喜欢Python编程并想深入研究的朋友;本项目为Bug追踪管理系统,在企业中各种项目提供了Bug的记录、跟踪、解决和统计的功能,另外还提供了wiki的知识库和在线的文档管理等等。编程无捷径,需要大量案例讲解与实战运用;杜绝纸上谈兵,杜绝“忽悠速成”,本课程为Bug追踪管理系统的第一阶段:登陆模块。◆ 在登陆模块中,包含了用户注册、用户账号登陆、手机验证码登陆、用户重置密码四个功能点。◆ 在登陆模块中,使用到了很多知识点,比如:virtualenv虚拟环境、Git和Gitee、ORM模型、Django模板继承、Redis数据库等等,如下图:本课程从0开始完成这个项目,代码全部手工完成,实战性很强。希望所有的同学能好好跟着视频理解每个知识点,动手敲代码。完成本课程!学完本套课程之后您将收获:1、轻松玩转Python。2、快速掌握Python的知识体系。3、逐步养成自己的编程思维和编程感觉。4、快速胜任Python工程师的工作。5、Offer与机遇

7,762

社区成员

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

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