Oppure

Loading
25/03/15 14:40
fosforo
Ciao
Vorrei aprire un Form con al suo interno un'immagine e
dopo pochi secondi chiuderlo.

Ho creato questo script:

StartImage f1 = new StartImage();
f1.Show();
var stopwatch = Stopwatch.StartNew();
Thread.Sleep(5000);
MessageBox.Show("Questo è un programma ";);
f1.Hide();

Il Form si apre e si chiude correttamente ma qualsiasi cos c'è al suo interno non appare.

Grazie dell'aiuto anticipatamente
aaa
25/03/15 15:50
Thejuster
In che senso qualsiasi cosa al suo interno non appare?

Se hai impostato l'immagine come background non devi aver
Nessun problema.

Edit:
Ricorda che il thread.sleep frezza il programma per 5 secondi.

Utilizza un timer invece del thread sleep
Ultima modifica effettuata da Thejuster 25/03/15 15:53
mire.forumfree.it/ - Mire Engine
C# UI Designer
25/03/15 15:56
fosforo
Ciao Thejuster

Frezzare il programma è proprio quello che voglio.
In pratica con il mio script, se all'interno del Form c'è un Button,
non lo vedo.
Lo vedo solo dopo la fine del Freez.


aaa
25/03/15 16:28
Ultimo
lo sleep freeza il disegno della finestra
If ok Then GOTO Avanza else GOTO Inizia

26/03/15 7:52
Thejuster
devi usare per forza un timer con form senza bordi.

Ho provato diverse soluzioni anche con un Enumeratore ottenendo lo stesso risultato



public void Attesa()
{

Attendi(5000);

}


 public IEnumerator Attendi(int tempo)
 {
   
yield return tempo;

 }



Ma ottengo la stessa funzione del freeze.

La cosa non cambia anche se mi aggancio allo shown del form


 protected override void OnShown(EventArgs e)
        {
            base.OnShown(e);
            
           //Richiamo del thread o dell'Enumeratore

        }



Ultima modifica effettuata da Thejuster 26/03/15 8:50
mire.forumfree.it/ - Mire Engine
C# UI Designer
27/03/15 14:11
archemi
L'immagine è nel background image del form e form border style = none
Ho aggiunto un timer.

Se lo vuoi comandare da un altro form, ridefiniti il sub new e specifichi l'immagine che vuoi caricare e il tempo in cui rimarrà visibile in millisecondi

Public Class Form1

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Timer1.Interval = 5000
        Timer1.Start()
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Me.Close()
    End Sub
End Class
Ultima modifica effettuata da archemi 27/03/15 14:15
aaa
27/03/15 15:36
Snogar
Scusa ma stai cercando di fare uno splash screen? ...nel caso visual studio già lo contempla.
aaa