Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [vb.net] Caricare il Form
Forum - C# / VB.NET - [vb.net] Caricare il Form

Avatar
danduz97 (Normal User)
Pro


Messaggi: 130
Iscritto: 13/03/2011

Segnala al moderatore
Postato alle 12:34
Domenica, 25/11/2012
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:

Codice sorgente - presumibilmente VB.NET

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



Grazie a tutti! :k:


Quando un VeroProgrammatore da bambino impara a parlare, le sue prime parole non sono "mamma" o "papà" ma "Hello, World!"

Quando da piccolo a scuola il VeroProgrammatore doveva fare il tema "il mio papà", scriveva semplicemente Papà.toString().
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 2:59
Lunedì, 26/11/2012
prova questo al Form Load

Codice sorgente - presumibilmente VB.NET

  1. <DllImport("user32")> _
  2. Private Shared Function AnimateWindow(hwnd As IntPtr, time As Integer, flags As AnimateWindowFlags) As Boolean
  3. End Function
  4.  
  5.  
  6. <Flags> _
  7. Public Enum AnimateWindowFlags As UInteger
  8.         AW_HOR_POSITIVE = &H1
  9.         AW_HOR_NEGATIVE = &H2
  10.         AW_VER_POSITIVE = &H4
  11.         AW_VER_NEGATIVE = &H8
  12.         AW_CENTER = &H10
  13.         AW_HIDE = &H10000
  14.         AW_ACTIVATE = &H20000
  15.         AW_SLIDE = &H40000
  16.         AW_BLEND = &H80000
  17. End Enum
  18.  
  19.  
  20. 'al form load inserisci
  21.  
  22. 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


PM Quote
Avatar
danduz97 (Normal User)
Pro


Messaggi: 130
Iscritto: 13/03/2011

Segnala al moderatore
Postato alle 16:38
Domenica, 23/12/2012
Testo quotato

Postato originariamente da Thejuster:

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



Grazie! è Perfetto! ;)


Quando un VeroProgrammatore da bambino impara a parlare, le sue prime parole non sono "mamma" o "papà" ma "Hello, World!"

Quando da piccolo a scuola il VeroProgrammatore doveva fare il tema "il mio papà", scriveva semplicemente Papà.toString().
PM Quote