首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

分享:VB6的Controls属性的一个BUG及解决方法

2013-06-19 
分享:VB6的Controls属性的一个BUG及解决办法今天在程序设计时,发现Me.Controls(txt备注)在IDE运行时正常

分享:VB6的Controls属性的一个BUG及解决办法
今天在程序设计时,发现Me.Controls("txt备注")在IDE运行时正常,编译成EXE文件后运行时,总是报“未找到控件 'txt备注'”的错误。原因不明,后来实在没办法,写了个FindControl函数来代替。代码如后:

---------------------------
测试备注
---------------------------
运行时错误 '730':

未找到控件 'txt备注'
---------------------------
确定   
---------------------------


------解决方案--------------------


我表示用楼主的代码没有发现错误。
倒是如果Me.Controls("txt备注")引号内的参数不符合VB6控件命名规则时才会出错
比如中间加个空格Me.Controls("txt 备注")就会出错
[解决办法]
VB6 使用UNICODE 估计你的“txt备注”不是UNICODE是MBCS字符,
所以“txt备注”中出现了半个汉字的问题,所以不正确。


[解决办法]
为什么不用 txt_remark?
[解决办法]
L"备注" Unicode 07 59 E8 6C 00 00
注意ASCII码07是BELL字符
[解决办法]

引用:
Quote: 引用:

L"备注" Unicode 07 59 E8 6C 00 00
注意ASCII码07是BELL字符


能否详细解释一下这个编码和VB那个BUG之前的逻辑关系?

我猜VB把07当控制字符BELL响铃解释了。
[解决办法]
引用:
虽然受你的启发,我把那个“备”字换成了那个位置编码为07或08的几个字符,如“堇、堈”后,都确实有同样的错误,算是有进一步的发现,但这里也不好笼统的说是当控制字符解释。
当然,既然BUG已经发现,则大致估计很可能是Controls属性在这方面的编码转换错误有关。最好还是有人能用工具从汇编级分析一下,就像那个VBIDE窗体设计器在WIN7下,移动控件时异常的问题一样。那个后来有人改好了的版本,我用FC/B比较过,就是改动了若干字节。参见:
http://bbs.csdn.net/topics/390468804
[置顶] 大家是用什么环境开发VB?(Win7下VB6IDE控件设计时拖放问题) [问题点数:40分]  

试想在纯英文环境下,你能在一个控件的名字中包含ASCII码小于0x20的字符吗?

热点排行