分享:TextBox追加输出的一个小技巧
vb吧
全部回复
仅看楼主
level 11
余思培 楼主
TextBox需要需要追加输入时,大家通常采用什么办法?
此处令将要输出的消息为sOut,TextBox控件为oBox
一般情况下,追加输出为:
oBox = oBox & sOut
介绍的小技巧:
With oBox
.SelStart = Len( .Text )
.SelText = sOut
.SelLength = 0
End With
2022年03月16日 05点03分 1
level 11
余思培 楼主
相对而言,第二种方法会比第一种方法速度快一点,但一般情况下对速度没有要求,也就不需要这种方法
2022年03月16日 05点03分 2
你的第二个方法也不行,因为用了.Text属性,虽然是取值,但这会导致将整个文本全部取出来再计算长度,越大越慢。建议直接用SendMessage把光标跳到文本最后(这个可以不用事先取长度,直接用-1就表示文本末尾位置)。
2022年03月16日 08点03分
@yjryym 这确实没想到,只是突然发现seltext比常用方式快,就分享了一下
2022年03月16日 09点03分
level 1
哦哦 帮大佬顶顶
2022年03月16日 07点03分 3
level 13
这种方法应该是没有直接连接字符串赋值的快
2022年03月16日 09点03分 4
实际测试中.seltext =... 比 .text = .text&...快,可能是我的测试方法不当
2022年03月16日 09点03分
@余思培 估计是你开了MultiLine为True,单行绝对是连接字符串赋值的快
2022年03月16日 09点03分
@隨風🍁缒夢 那应该是了,我将ML设为真的
2022年03月16日 10点03分
@隨風🍁缒夢 不管你那种模式都没有SendMessage的方式快
2022年03月16日 10点03分
level 13
SendMessage这种方法比你那种要快,可以快速定位到文本尾
2022年03月16日 10点03分 6
level 7
华山论剑
2022年03月16日 10点03分 7
level 11
余思培 楼主
可能是我主观感受原因,让大家见笑了[笑尿]
2022年03月16日 11点03分 8
没事。这个课题很客观。 可以测试一下,应该会有个一致结论的。
2022年03月17日 00点03分
level 14
再给个小提示:富文本框的读写速度比纯文本框快很多倍。
2022年03月17日 02点03分 9
level 2
还在vb。改淘汰了
2022年03月17日 13点03分 10
从时间来将任何东西都会淘汰,如果按你的想法,你只能每天追新,新东西每天都在换。像底层ASM汇编照样有人学,如果按现在的程序员开发程序用ASM简直能把人逼疯,主要看用途,VB轻巧可视快速开发,虽然有缺点(不支持64位,不支持跨平台),但是这在Windows上目前不是什么问题
2022年03月17日 13点03分
@隨風🍁缒夢 你跟他讲这些没用的,经常会看到一些不学VB的人跑到VB吧来说VB过时啥的,人家只是来秀优越感的,这样能显得他学的语言多么高级。
2022年03月18日 09点03分
@EMU_MAX 也是
2022年03月18日 12点03分
level 5
直接Text1.Text=Text1.Text & "要追加的文本"不香吗?还得用API,太麻烦。
2022年04月18日 23点04分 11
你看看你这么做要花多少时间再说吧
2022年04月22日 06点04分
1