在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一样当收到信息或发出信息文字不断向上滚动。

解决方案 »

  1.   

    你的Winsock_DataArrival多长时间引发一次?我这里做了一个Timer控件来模拟(1秒钟引发一次),没有闪烁的现象。
      

  2.   

    Text1 = Now() & vbCrLf & Text1
    Text1.SelStart = 0
    Text1.SelLength = 0看看这个合不合你要求
      

  3.   

    'Timer事件中处理
    textGet.Text = textGet.Text & vbCrLf & strGet
     
    'textGet_Change事件中处理
    textGet.SelStart = Len(textGet.Text) 
    textGet.SelLength = 0我用Timer控件模拟过, 上面的可以行!
      

  4.   

    textbox行数不多时闪动不明显,但textBox接收的行数比较多时,会先看到以前接收到的文字,最后光标才定位在最后的一行的最右边的字符后,用
    textGet.SelStart = Len(textGet.Text) 
    textGet.SelLength = 0
    方法还是先显示由第一行往下显示,有没有别的办法呀?
      

  5.   

    没办法的,QQ中的显示框并不是RichEdit,而是自己做的窗口,所以能显示效率比较高
      

  6.   

    昏菜,直接用textGet.SelText属性不就行了?
    textGet.SelStart = len(textGet.Text)
    textGet.SelLen = 0
    textGet.SelText=strGet