Scrolling di due datagrid uguali

mercoledì 05 luglio 2006 - 14.38

andreapavia Profilo | Senior Member

mi scuso se continuo a postare.... ma purtroppo ho pochissimo tempo x la mi applicazione e ogni aiuto è buono....

ho due datagrid uguali e allo scorolling verticale di uno devo fare si che scrolli allo stesso modo anche l'altro

come faccio ad accordare lo scrolling verticale dei 2 datagrid???

Brainkiller Profilo | Guru

>come faccio ad accordare lo scrolling verticale dei 2 datagrid???

Ciao,
disegni due datagrid, poi entri nell'evento Scroll di entrambe e gli scrivi questa cosa nella prima:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

e inverti nella seconda.
Vedrai che si muovono in sincronia.
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

andreapavia Profilo | Senior Member

Grazie david ma...
dove trovo l'oggetto datagridview in visual studio 2003???

Private Sub DataGrid1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGrid1.Scroll

DataGrid1.FirstDisplayedScrollingRowIndex = DataGrid2.FirstDisplayedScrollingRowIndex

End Sub


FirstDisplayedScrollingRowIndex non credo sia un metodo di datagrid VS 2003

come posso fare?????

scusami e grazie

Brainkiller Profilo | Guru

>Grazie david ma...
>dove trovo l'oggetto datagridview in visual studio 2003???

Hai ragione questo vale per VSNET 2005.
Per VSNET 2003 che io sappia la procedura è un po' più complessa. Ricordo un esempio in cui bisognava creare una classe DataGrid derivata dalla principale per poter accedere alle proprietà VertScrollBar e HorizScrollBar. Una vola fatto questo bisogna cambiare il tipo delle due Datagrid non più DataGrid ma il tuo tipo esempio MyDataGrid e a quel punto puoi accedere alle due scrollbar e al posizionamento.
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

andreapavia Profilo | Senior Member

ok david, quasi ci sono:
questo è cio' che scrivo nella classe mydatagrid


Sub ScrollToRow(ByVal row As Integer)

If Not Me.DataSource Is Nothing Then

Me.GridVScrolled(Me, New ScrollEventArgs(ScrollEventType.ThumbPosition, row))

End If


questo e' cio' che scrivo ne WF


Private Sub DataGrid1_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGrid1.Scroll

Dim pt As Point
Dim pt1 As Point
' Dim f As Control = DataGrid1.Controls.GetType(VScrollBar)

' DataGrid1.GridVScrolled(Me, New ScrollEventArgs(ScrollEventType.LargeIncrement, row))
For Each c As Control In DataGrid1.Controls
If c.GetType() Is GetType(VScrollBar) Then
pt = VScrollBar.MousePosition()
DataGrid2.ScrollToRow(pt.Y)
End If

' VScrollBar()
Next

' DataGrid2.Refresh()




End Sub



ora il problema è che datagrid2 non scrolla assieme a datagrid1 ma si posizione dimciamo " A FINE CORSA" della sua scrollbar

dove sbaglio?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5