Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Dissolvenza
martedì 17 maggio 2005 - 13.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Shadow
Profilo
| Junior Member
194
messaggi | Data Invio:
mar 17 mag 2005 - 13:25
Buongiorno a tutti,
vorrei fare in modo che la maschera di apertura del mio sfw compaia in dissolvenza. In particolare ho cercato di incrementare la proprietà opacity del form sia con un ciclo di for a step piccoli (per rendere apprezzabile l'effetto) sia associata ad un timer ma senza mai riuscirci; potete scrivermi un paio di righe di codice che facciano al caso mio?
Grazie
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mar 17 mag 2005 - 15:07
Questa Splash form si porta da opacity=0 (settata in fase di progettazione), fino a opacity 1, poi ne fa comparire un'altra, la FrmStart, anch'essa a opacity=0 e via via si dissolve, contemporaneamente opacizzando la FrmStart e rivelandola. Inoltre cambia delle diciture in una label dando un messaggio diverso nella fasse di dissolvenza, rispetto a quello in cui si opacizza!
Per il timer, l'intervallo settalo a gusto tuo!
Buon lavoro.
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Me.Label1.Text = " A.E.A. srl presenta GIN.net"
Me.Opacity += 0.05
If Me.Opacity >= 1 Then
Me.Timer1.Stop()
Me.Timer2.Start()
End If
End Sub
Private Sub Timer2_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer2.Tick
GIN.FStart.Visible = True
Me.Label1.Text = "su tecnologia Microsoft Framework.NET"
Me.Opacity -= 0.05
FStart.Opacity += 0.05
If Me.Opacity <= 0.2 Then
Me.Timer2.Stop()
FStart.Opacity = 1
Me.Close()
Me.Dispose()
End If
End Sub
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
mar 17 mag 2005 - 15:14
Ciao. Ho ciò che ti serve.
Come prima cosa inserisci nella form da dissolvere un controllo di tipo Timer
Dichiara poi al di fuori di ogni funzione una variabile booleana
Private ApriDiss As Boolean
Successivamente crea l'evento tick del timer e piazzaci questo codice:
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If ApriDiss = True Then
If Me.Opacity < 1 Then
Me.Opacity = Me.Opacity + 0.01
Application.DoEvents()
Else
Me.Timer1.Stop()
End If
Else
If Me.Opacity > 0 Then
Me.Opacity = Me.Opacity - 0.01
Application.DoEvents()
Else
Me.Timer1.Stop()
Me.Close()
End If
End If
End Sub
Crea una sub "ApriIndissolvenza" e piazzaci questo codice per aprire la form in dissolvenza
Me.ApriDiss = True
Me.Opacity = 0
Me.Timer1.Interval = 1
Me.Timer1.Start()
Crea una sub "ChiudiIndissolvenza" e piazzaci questo codice per Chiudere la form in dissolvenza
Me.ApriDiss = False
Me.Opacity = 1
Me.Timer1.Interval = 1
Me.Timer1.Start()
Per la velocità della dissolvenza puoi interagire su due cose:
- Il Timer.Interval: questo lo puoi settare con valori interi superiori o uguali a 1. Valori più grandi = tempo più lungo
- il valore 0.01 che viene aggiunto o sottratto: puoi cambiarlo a tuo piacere. Quello che ti ho messo fa in modo da non far andare a scatti la dissolvenza
ciao cristian
poi all'occorrenza chiami le due sub a seconda quello che defi fare
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 17 mag 2005 - 16:22
Non sarai riuscito ad ottenere l'effetto perchè se esegui il ciclo all'interno del Thread corrente, viene bloccato e non riesci a vedere l'animazione.
Più correttamente come dice Christian usa un Timer oppure un Thread.
ciao
david
Shadow
Profilo
| Junior Member
194
messaggi | Data Invio:
mar 5 dic 2006 - 22:09
Ha funzionato! Grazie infinite.
Shadow
Torna su
Stanze Forum
Elenco Threads
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 !