RichText控件使用请教

晨山往事 2016-10-17 04:44:08
我在VB中加入部件Microsoft RichText后,使用上很多与TextBox一样。
但是,有一个问题很郁闷。例如,我写了下面这个代码:
Private Sub RichTextBox1_Change()
Label1.Caption = RichTextBox1.Text
End Sub
一般情况下,Label1上的文字和RichText中文字一样,每打一个字都变一次。
这个问题是在使用五笔输入法下出现的:
在输入aqaq时,提示框是“1.葡萄 2.区区”,此时若继续打其他字母,如b,正常情况下,“葡萄”二字将会上屏,而b也出现并提示变为“了”(五笔中b=了)。然而,只要在Change事件中加入读取RichTextBox1.Text的代码,输入b时,“葡萄”二字虽然上屏了,同时b字母也就消失了。
此现象被有些人称为“第五码丢失”。这个现象谁能帮我解决吗?


补充,在Change事件中写代码代码没问题,比如给某几个字设颜色等,都没问题。但只要用到RichTextBox1.Text就有问题。

另外还有一个其他问题:有时小键盘打数字时,数字能上屏,却不触发Change事件。是什么回事呢?
...全文
3061 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
6742 2018-02-26
  • 打赏
  • 举报
回复
这个与输入法软件也有关系,用智能五笔(陈桥)就可以的
of123 2018-02-26
  • 打赏
  • 举报
回复
汉字输入法实际上“拦截”了我们对于文本框的输入。当它积累了多次击键的结果时,才将它转换出的汉字编码提交给文本框。 要解决这样的问题,可能需要用钩子取得键盘操作的信息,根据情况来进行适当的处理。
赵4老师 2018-01-08
  • 打赏
  • 举报
回复
旧的输入法怎么会自动适应新控件新系统呢?
舉杯邀明月 2018-01-06
  • 打赏
  • 举报
回复
刚才新建了一个标准EXE工程来试,没有任何问题。 操作系统是一样的,只是重新安装过了。 输入法不一样,在1楼试验、回复时,那个时候用的是“极点五笔”。 现在用的输入法是智能陈桥 7.9版。 2017年9月底,换硬盘、重新安装系统后,只安装了智能陈桥,其它的输入法就没用了。 (系统都是用同一个Ghost镜像文件来安装的: Win 7 旗舰版/SP1 64位)
晨山往事 2018-01-05
  • 打赏
  • 举报
回复
此问题迁延一年多了,一直没有解决。有哪位高手能帮忙解决,愿意送分送银子啊!!
赵4老师 2016-10-18
  • 打赏
  • 举报
回复
RICHTX32.ocx似乎分英文版和Unicode版或汉字版。
晨山往事 2016-10-18
  • 打赏
  • 举报
回复
我甚至觉得他没有特意做什么处理,无意中避开了“第五码丢失”的情况。 楼上兄台也是高手,我邀请你加入我的VB群好吗?此群创建有十年了,各种朋友都在。陈辉在里面一段时间后退出了。 VB群号200452312
舉杯邀明月 2016-10-17
  • 打赏
  • 举报
回复
果然是VB6程序。 

但不知道他是如何处理实现“防止第五码丢失”的。
软件中他用的那个RICHTX32.ocx ,就是VB6带的那个版本的控件。
舉杯邀明月 2016-10-17
  • 打赏
  • 举报
回复
不是。  陈辉已经好几年没出现了。 他的账号好像是 chenhui530 吧。
晨山往事 2016-10-17
  • 打赏
  • 举报
回复
楼上莫非是陈辉? 不知使用VC中的RichEdit(1.0或2.0)有否此问题。另外,我觉得在VB中能够解决,是否,有一款软件,叫《益国打字通》,用SPY++和Depends查得它是用VB做的,它的输入框正是RichText,它能够在打字过程判断正确和错误的字(和上面对照栏的文字比较),说明其一定也用了RichTextBox1.Text,但是它却没有“第五码丢失”现象。我写信问作者,他不理我。 楼上如果有兴趣,可以下载《益国打字通》看看。我下载并上传到了这里 http://at01.cn/download/yiguo.rar,从中选择“文章练习”即可试到效果。(记得从软件中选择输入法) 另外我的程序传到这里http://at01.cn/download/dz.rar,还请专家你看看啊!
舉杯邀明月 2016-10-17
  • 打赏
  • 举报
回复
这种因“控件引起”的问题,恐怕不能从代码上解决。 你所说的“第五码丢失”,我这儿试了下确实是会那样。 但用标准控件中的TextBox就没那个问题。 但“数字能上屏,却不触发Change事件”,   我这儿可没有这事,是能够触发Change()事件的。 你仔细检查一下你的代码,这个事件跟“从哪儿输入”是没关系的, 即使用程序语句改变它的Text文本内容,也会触发Change事件的。

1,451

社区成员

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

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