2009-03-21 12 views
0

Ich habe ein Formular mit einer Richtextbox und einer Bildlaufleiste. Ich möchte in der Lage sein, Text an das Textfeld anzuhängen, ohne meine Auswahl zu verlieren. Ich kann den Auswahlstart und die Auswahllänge speichern, bevor ich den Text anhefte und ihn zurücksetze, und es funktioniert. Das Problem ist, wenn es um die umgekehrte Auswahl geht. Das Beste, was ich tun könnte, ist, den Auswahlstart an der richtigen Position zurückzusetzen, aber ich muss die Maus bewegen, damit sie den Text erneut auswählt. Ich verwende die folgenden Funktionen vor und nach dem ich fügen Sie den Text:Umgekehrte Auswahl von Text programmgesteuert in einer Richtextbox (vb.net)

Private Sub StopRepaint() 
Dim pt As Point 
' Stop redrawing: 
SendMessage(txtchat.Handle, WM_SETREDRAW, 0, pt) 
' Stop sending of events: 
eventmask = SendMessage(txtchat.Handle, EM_GETEVENTMASK, 0, pt) 
End Sub 

Private Sub StartRepaint() 
Dim pt As Point 
' turn on events 
SendMessage(txtchat.Handle, EM_SETEVENTMASK, 0, pt) 
' turn on redrawing 
SendMessage(txtchat.Handle, WM_SETREDRAW, 1, pt) 
' this forces a repaint, which for sotxtchat reason is necessary in sotxtchat cases. 
txtchat.Invalidate() 
End Sub 

Wenn meine Scrollbar Position nicht vollständig unten ist, ich bin die Einrichtung es mit diesem zurück, nachdem der Text angefügt:

If Not isbottom(getpos) Then 
    PostMessageA(txtchat.Handle, WM_VSCROLL, SB_THUMBPOSITION + _ 
         &H10000 * getpos(), Nothing) 
End If 

Mein Hauptziel ist es, Text auswählen und kopieren zu können, auch wenn neuer Text an die Richtextbox angehängt wird. Wer weiß, wie man Text in umgekehrter Reihenfolge richtig auswählt ODER mein Problem mit der Abwahl von Text einfach behebt? Vielen Dank.

Antwort

1

Ich würde versuchen, "auswählbare Blöcke" zu machen, jede angehängte Textplatte unabhängig vom nächsten Block zu halten. So ähnlich wie MSN Messenger. Sie können die "Panels" nahtlos erscheinen lassen und mithilfe eines Stringbuilders den letzten Block sicher als einen einzelnen Stream exportieren.

Verwandte Themen