Autoscroll position

venerdì 06 febbraio 2009 - 11.44

toniovigi Profilo | Expert

Ciao ragazzi, ho settato nella mia winform l'autoscroll = true;quando avvio mi appaiono le 2 scrollbar e fin qui ok

Io mentre uso il mio programma m muovo nella form e quindi sposto queste scrollbar

Adesso ho la necessita alla chiusura della form di far ritornare le scroll barra alla loro posizone originale quindi quella
orizzontale tutta a sinistra e quella verticale tutta in alto

Quale comando devo settare al Form_Closing per far si che accada questo?Che le "barre" dello scroll tornano al loro
punto iniziale?

sanbiz Profilo | Senior Member

>Quale comando devo settare al Form_Closing per far si che accada
>questo?Che le "barre" dello scroll tornano al loro
>punto iniziale?

Prova a dare un'occhiata a questo post se può esserti utile: http://tinyurl.com/am4j6n

Una precisazione però: quando il form viene chiuso, al suo riavvio tutti gli oggetti dovranno essere automaticamente impostati ai loro valori predefiniti, comprese le scrollbar. Se ciò non accade significa che in realtà il form non viene "distrutto", ma rimane istanziato, probabilmente perchè vi è qualche riferimento esterno ad oggetti in esso contenuto. In tal caso ti consiglio di verificare attentamente che ciò non accada.
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

freeteo Profilo | Guru

Ciao,
io ho usato delle API per settare la posizione (mi servivano infondo):
const int WM_VSCROLL = 277; const int SB_BOTTOM = 7; [DllImport("User32.dll", CharSet = CharSet.Auto, EntryPoint = "SendMessage")] static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);

e lo usavo così:

SendMessage(miatext.Handle, WM_VSCROLL, new IntPtr(SB_BOTTOM), new IntPtr(0));

Guarda se qui puoi trovare qualcosa di utile: http://msdn.microsoft.com/en-us/library/bb787577(VS.85).aspx

Ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

Jeremy Profilo | Guru

Per quale motivo dovresti avere questa necessità???? Vuol dire che quando riapri il form fai riferimento ancora alla stessa istanza di classe con il quale lo hai aperto la prima volta.

La cosa corretta da fare sarebbe questa.

private void button_click bla..bla..bla.. { Form1 frm1 = new Form1(); frm1.show }

in questo modo,ad ogni pressione del button di apertura del form, viene creato sempre il riferimento ad un nuovo oggetto.

In alternativa mi sembra tu possa assegnare il valore a questa proprietà:
Me.VerticalScroll.Value = 0

Facci sapere...
Ciao.
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5