在Textbox中添加字符时,如何解决光标定位在最后位置时不许由头显示?

herman2000 2005-03-22 12:05:10
在Textbox中不断显示出从Winsock中接收到的字符,并光标定位在最后的字符之后,例如:
Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
Dim strGet as string

winsock.getData strGet

textGet.text=textGet.text & strGet
textGet.selstart=len(textGet.text) 'TextGet有垂直滚动条
textGet.setfocuse
End Sub
发现TextGet先由头显示下去,画面每次都闪动一下,有什么办法解决该问题?象QQ一样当收到信息或发出信息文字不断向上滚动。
...全文
154 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunyu97 2005-03-24
  • 打赏
  • 举报
回复
昏菜,直接用textGet.SelText属性不就行了?
textGet.SelStart = len(textGet.Text)
textGet.SelLen = 0
textGet.SelText=strGet
herman2000 2005-03-24
  • 打赏
  • 举报
回复
ok,我自己找到解决办法。谢谢各位。
TechnoFantasy 2005-03-22
  • 打赏
  • 举报
回复
你的Winsock_DataArrival多长时间引发一次?我这里做了一个Timer控件来模拟(1秒钟引发一次),没有闪烁的现象。
是是非非 2005-03-22
  • 打赏
  • 举报
回复
关注
samwzhang 2005-03-22
  • 打赏
  • 举报
回复
偶楼上说的对
wylcy 2005-03-22
  • 打赏
  • 举报
回复
没办法的,QQ中的显示框并不是RichEdit,而是自己做的窗口,所以能显示效率比较高
herman2000 2005-03-22
  • 打赏
  • 举报
回复
textbox行数不多时闪动不明显,但textBox接收的行数比较多时,会先看到以前接收到的文字,最后光标才定位在最后的一行的最右边的字符后,用
textGet.SelStart = Len(textGet.Text)
textGet.SelLength = 0
方法还是先显示由第一行往下显示,有没有别的办法呀?
BTbug 2005-03-22
  • 打赏
  • 举报
回复
'Timer事件中处理
textGet.Text = textGet.Text & vbCrLf & strGet

'textGet_Change事件中处理
textGet.SelStart = Len(textGet.Text)
textGet.SelLength = 0

我用Timer控件模拟过, 上面的可以行!
WM_JAWIN 2005-03-22
  • 打赏
  • 举报
回复
Text1 = Now() & vbCrLf & Text1
Text1.SelStart = 0
Text1.SelLength = 0

看看这个合不合你要求
herman2000 2005-03-22
  • 打赏
  • 举报
回复
噢,没办法啦?

1,488

社区成员

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

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