上位机中:请教个简单VB6 文本框问题
文本框text1已经打开多行功能如何在接收数据达到最底行时,让垂直滚栏出现在最下方,这样就可以看到实时接收到的数据,而不是默认的出现在最上方
http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_187969.jpg 好像是text1.selstart=len(text1.text) 刚试了下,【1楼】 zxq6 小马哈
你所说的不行,我所说的是,当垂直滚栏一开始出现时就出现在最下方 想做成一个像Debug窗口一样的东西吧,这需要一点点小技巧的:
text1.selstart=&H7FFF ' text1.selstart=len(text1.text)
text1.seltext=newstring ' set new string 垂直滚条一开始出现时就出现在最下方 的实现方法? 我也想知道。。。。 方法肯定是可以滴,只是你没有用对。
新建一个工程,填入以下代码,建立2个必要的控件,试试看?
Option Explicit
Private Sub Command1_Click()
Text1.Text = Text1.Text & "Text1.Text"
End Sub
Private Sub Text1_Change()
Text1.SelStart = Len(Text1.Text)
End Sub 谢谢:zxq6 小马哈 zxq6 小马哈 Text1.Text 显示太闪了!!! 看看三楼吧,你还当我是随便说说?知道这样用的人不多,理解为什么这样的人就凤毛麟角了。
对于每次输出一行的应用,6楼的方法是很耗时间的,原因是进行了大量的方法间文本拷贝,而3楼的方法就没有文本拷贝,效率提高n多。 Private Sub Text1_Change()
text1.selstart=&H7FFF ' text1.selstart=len(text1.text)
text1.seltext=newstring ' set new string
End Sub
Text1.Text显示还是太闪啊滚动条也闪 我的是20MS接受一个数据 新手请教!! 你知道Text1_Change事件干什么的吗?象你这样用很容易造成事件循环,就是说在事件处理过程再触发相同事件(按道理text1.seltext=newstring 会触发Change事件),很容易把程序写死的,所以text1.seltext=newstring 不应该在Change事件中出现。 Private Sub Text1_Change()
text1.selstart=&H7FFF ' text1.selstart=len(text1.text)
End Sub
显示还是太闪啊
text1.seltext=newstring ' set new string应该放在那呢?
怎么才能想串口调试助手那样稳定显示就好了 ! favr真是高手呢~
楼主,应该这样用:
Option Explicit
Private Sub Form_Load()
Timer1.Interval = 5
End Sub
Private Sub Text1_Change()
Text1.SelStart = Len(Text1.Text)
End Sub
Private Sub Timer1_Timer()
Text1.SelStart = &H7FFF ' text1.selstart=len(text1.text)
Text1.SelText = "newstring" ' set new string
End Sub 送佛送到西吧。
楼上这样用不说不对,但一般不这样用;应该明白:
Text1.SelStart = &H7FFF
Text1.SelText = "newstring"
这两句什么意思,文本框的SelStart方法设置文本框内选择文本的起始位置,原理上用Text1.SelStart = Len(Text1.Text)是最准确的,但就这么一条语句比较耗时间,和VB内的Len(vb_String)不一样,Text1对象的文本内容是私有的,必须通过Text接口返回真实内容,然后传递给Len函数计算(而在Len VB的String类型的变量可以直接检查String类型长度区得到,根本不用算);使用常数&H7FFF就比较简单了,反正是字符串的最后,懒得算它;第二句的意思是把新内容加到光标处(和第一句结合就是添加到文本最后),不用任何文本拷贝。
所以这两句已经包含了楼上Text1_Change事件的内容,语句放在什么地方好呢?就是你要加入新文本的地方。 大家好我是vb新手请大家多多关照,我想问一下如何才能学好vb 学好的方法就是好好学 Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
用API操作的方法
SendMessage Text1.hWnd, &H115, 7, 0
页:
[1]