分享:VB6的Controls属性的一个BUG及解决方法
分享:VB6的Controls属性的一个BUG及解决办法
今天在程序设计时,发现Me.Controls("txt备注")在IDE运行时正常,编译成EXE文件后运行时,总是报“未找到控件 'txt备注'”的错误。原因不明,后来实在没办法,写了个FindControl函数来代替。代码如后:
---------------------------
测试备注
---------------------------
运行时错误 '730':
未找到控件 'txt备注'
---------------------------
确定
---------------------------
------解决方案--------------------
经测试,确实如此,txt备注,确实有这样的问题
但是,如果名称不是叫 txt备注,而是包含别的汉字比如 txt不是东西
那么一切正常
或者,叫做 备注txt 也正常
------解决方案--------------------
叫做 txt备注a 也正常
------解决方案--------------------
哈哈,名字叫 txt备注吧 也正常
------解决方案--------------------
这名字在内存中是怎样表示的?该不会机器码层次的问题吧
------解决方案--------------------
worldy测试的内容中不会也有这个字段吧
怀疑是读取双字节错位引起的
不混用字符和汉字的话
应该不会出现这样的情况
------解决方案--------------------
真神奇...
用"备注"做结尾就不行?
------解决方案--------------------
上面解答的都非常好,可以仔细看看,学习下
------解决方案--------------------
chk备注?
txt备_注?
txt_备注?
------解决方案--------------------
你用什么版本的 VB-IDE 编译的?
既然用了中文控件名,就用中文版 VB-IDE 开发。
试试是否还有问题?
------解决方案--------------------
经测试,确实如此,txt备注,确实有这样的问题
但是,如果名称不是叫 txt备注,而是包含别的汉字比如 txt不是东西
那么一切正常
或者,叫做 备注txt 也正常
------解决方案--------------------

------解决方案--------------------
今天在程序设计时,发现Me.Controls("txt备注")在IDE运行时正常,编译成EXE文件后运行时,总是报“未找到控件 'txt备注'”的错误。原因不明,后来实在没办法,写了个FindControl函数来代替。代码如后:
---------------------------
测试备注
---------------------------
运行时错误 '730':
未找到控件 'txt备注'
---------------------------
确定
---------------------------
Option Explicit
Private Sub Command1_Click()
FindControl("txt备注").Text = "ok"
MsgBox "pause"
Me.Controls("txt备注").Text = "ok2" '使用Controls("txt备注")会报错
'txt备注.Text = "ok"
End Sub
Function FindControl(ByVal AControlName As String) As VB.Control
Dim i As Long
For i = 0 To Me.Controls.Count - 1
If (Me.Controls(i).Name = AControlName) Then
Set FindControl = Me.Controls(i)
Exit Function
End If
Next i
End Function
Controls
------解决方案--------------------
经测试,确实如此,txt备注,确实有这样的问题
但是,如果名称不是叫 txt备注,而是包含别的汉字比如 txt不是东西
那么一切正常
或者,叫做 备注txt 也正常
------解决方案--------------------
叫做 txt备注a 也正常
------解决方案--------------------
哈哈,名字叫 txt备注吧 也正常
------解决方案--------------------
这名字在内存中是怎样表示的?该不会机器码层次的问题吧
------解决方案--------------------
worldy测试的内容中不会也有这个字段吧
怀疑是读取双字节错位引起的
不混用字符和汉字的话
应该不会出现这样的情况
------解决方案--------------------
真神奇...
用"备注"做结尾就不行?
------解决方案--------------------
上面解答的都非常好,可以仔细看看,学习下
------解决方案--------------------
chk备注?
txt备_注?
txt_备注?
------解决方案--------------------
你用什么版本的 VB-IDE 编译的?
既然用了中文控件名,就用中文版 VB-IDE 开发。
试试是否还有问题?
------解决方案--------------------
经测试,确实如此,txt备注,确实有这样的问题
但是,如果名称不是叫 txt备注,而是包含别的汉字比如 txt不是东西
那么一切正常
或者,叫做 备注txt 也正常
------解决方案--------------------
------解决方案--------------------