[VB NET 2005] Dissolvenza form in chiusura

mercoledì 01 aprile 2009 - 20.44

alexmed Profilo | Guru

Ciao a tutti
L'idea mi è venuta dopo aver scaricato ed installato un programma free per l'OCR.
Dopo aver prelevato un pò di codice trovato su internet ho elaborato queste 4 righe:

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

Non essendo un esperto mi chiedevo se è possibile creare un Controllo personalizzato che abbia questa caratteristica dal momento che in una applicazione che stò sviluppando avrò bisogno di inserire varie Form

Grazie


alexmed

aiedail92 Profilo | Expert

Ciao

Puoi renderti il lavoro molto più semplice chiamando la sola API AnimateWindow, in questo modo:

<DllImport("user32.dll")> _ Shared Function AnimateWindow(hwnd As IntPtr, dwTime As Integer, dwFlags As Integer) As Boolean End Function Const AW_HIDE As Integer = &H10000 Const AW_BLEND As Integer = &H80000 Protected Overrides Sub OnClosing(e As CancelEventArgs) 'Fa sparire la finestra in 5 secondi AnimateWindow(Me.Handle, 5000, AW_HIDE Or AW_BLEND) End Sub

E quindi per ogni Form che vuoi avere questa caratteristica basta che invece di derivarla da Form, la derivi dalla tua form personalizzata (quella dove hai inserito il codice precedente).

Ovviamente puoi anche aggiungere delle proprietà per personalizzare la durata dell'animazione e se abilitarla o meno...

Luca

alexmed Profilo | Guru

Bhè, che dire ... fantastico!!
Non conoscevo le AnimateWindow.
Tra l'altro non presenta il fastidioso scatto che aveva, in partenza, la procedura che avevo scritto.

Grazie

alexmed
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