Newsgroup: it.comp.lang.visual-basic
Titolo: Sincronizzare barre di scorrimento

Salve e buon 2003.
Vorrei sicronizzare le barre di scorrimento di due textbox che contengono la
stessa quantità di testo e hanno la stessa dimensione, in modo che portando
su e giù la barra di una delle due, anche l'altra la segua.
Ho provato a modificare le proprietà selLength e selStart con un timer, ma
(oltre a rallentare troppo il programma) riesco a tenere in vista in
entrambe le textbox solo una precisa riga.
Qualcuno ha qualche suggerimento da darmi?
Grazie in anticipo.

 Qualcuno ha qualche suggerimento da darmi?
il buon Balena suggerisce un accrocchio che funziona con le listbox che
hanno la proprieta' topindex che restituisce la prima riga visibile :
sovrapponi la listbox di destra sulla barra di scorrimento di quella di
sinistra e poi valorizza negli eventi di spostamento la variabile della
listbox di sotto con quelle che stanno sopra :
listConScroolVcoperto.topindex = listSovrapposta.topindex
altrimeni con le texbox dovresti usare il sendkey per emulare gli
spostamenti di un textbox nell'altro
(in text1.keydown se intercetti per esempio la pressione delle frecce la
emuli anche nell'altra con un sendkeys ma e' laborioso da gestire )
-- 
<Gigio2K>
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

 listbox di sotto con quelle che stanno sopra :
Dovrebbe essere possibile fare lo stesso con le Textbox, "ovviamente"
bisogna giocare un po' con SendMessage e i messaggi EM_*
Ciao
--
using System.Gtk.Forms = "
http://www.neodatatype.net/windowsforms/sgf.aspx
"
mathParser = "
http://www.neodatatype.net
"
sitoComune = "
http://www.it-lang-vb.net
"

 bisogna giocare un po' con SendMessage e i messaggi EM_*
e infatti per "laborioso" intendevo proprio il perdersi tra
l'intercettazione e gestione dei messaggi e il tempo che passa prima di
cacciarci qualcosa , MEGLIO LE LISTBOX  ^_^;


 su e giù la barra di una delle due, anche l'altra la segua.
Non è perfetto (in particolare durante lo scroll), ma qualcosa fa.
'Creare due textbox (Text1 e Text2) multiline e con entrambe le scrollbars
Private Sub Form_Load()
    Text2.Top = Text1.Top
    Text2.Left = Text1.Left + Text1.Width
    Text2.Width = Text1.Width
    Text2.Height = Text1.Height
    Text1 = ""
    For c = Asc("A") To Asc("Z")
        Text1 = Text1 & String(c - Asc("A"), Chr(c)) & vbCrLf
    Next c
    Text2 = Text1
End Sub
Private Sub Text1_Change()
    Call adegua(Text1, Text2)
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
    Call adegua(Text1, Text2)
End Sub
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single,
Y As Single)
    Call adegua(Text1, Text2)
End Sub
Private Sub Text2_Change()
    Call adegua(Text2, Text1)
End Sub
Private Sub Text2_KeyUp(KeyCode As Integer, Shift As Integer)
    Call adegua(Text2, Text1)
End Sub
Private Sub Text2_MouseUp(Button As Integer, Shift As Integer, X As Single,
Y As Single)
    Call adegua(Text2, Text1)
End Sub
Sub adegua(torig As Object, tdest As Object)
    If torig Is Screen.ActiveControl Then
        tdest = torig
        tdest.SelStart = torig.SelStart
        DoEvents
    End If
End Sub