Oppure

Loading
25/11/12 11:34
danduz97
Salve a tutti,
Sto sviluppando un programmino il quale appena lo eseguo visualizza un'effetto di Fade In del mio form utilizzando un Timer che mi aumenta l'opacità dello stesso

Il mio problema è che circa a metà del Fade In l'effetto si blocca o va a scatti perchè deve caricare tutte le librerie del componente Windows Media Player che ho aggiunto sul form.

non è possibile magari caricare il form con Me.Opacity = 0 , e successivamente visualizzare l'effetto?


Vi posto inoltre il sorgente del Timer che ho utilizzato:

 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Me.Opacity += 0.1
        If Me.Opacity >= 1 Then
            Timer1.Stop()
        End If
    End Sub


Grazie a tutti! :k:
aaa
26/11/12 1:59
Thejuster
prova questo al Form Load


<DllImport("user32")> _
Private Shared Function AnimateWindow(hwnd As IntPtr, time As Integer, flags As AnimateWindowFlags) As Boolean
End Function


<Flags> _
Public Enum AnimateWindowFlags As UInteger
	AW_HOR_POSITIVE = &H1
	AW_HOR_NEGATIVE = &H2
	AW_VER_POSITIVE = &H4
	AW_VER_NEGATIVE = &H8
	AW_CENTER = &H10
	AW_HIDE = &H10000
	AW_ACTIVATE = &H20000
	AW_SLIDE = &H40000
	AW_BLEND = &H80000
End Enum


'al form load inserisci

AnimateWindow(this.Handle, 1000, AnimateWindowFlags.AW_BLEND)



Anziché usare opacity prova con AnimateWindowFlags.Blend
o magari con qualche altra animazione disponibile.

Evitando così di usare il controllo Timer o eventuali cicli for
che potrebbero appunto influenzare nel caricamento delle risorse del form.
mentre un operazione a livello nativo è molto più efficacie

prova e fammi sapere
mire.forumfree.it/ - Mire Engine
C# UI Designer
23/12/12 15:38
danduz97
Postato originariamente da Thejuster:

prova questo al Form Load
Anziché usare opacity prova con AnimateWindowFlags.Blend
o magari con qualche altra animazione
...


Grazie! è Perfetto! ;)
aaa