Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Apertura e chiusura form senza immagine
Forum - C# / VB.NET - Apertura e chiusura form senza immagine

Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 15:40
Mercoledì, 25/03/2015
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

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:50
Mercoledì, 25/03/2015
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 il 25/03/2015 alle 16:53


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 16:56
Mercoledì, 25/03/2015
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.



PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 877
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 17:28
Mercoledì, 25/03/2015
lo sleep freeza il disegno della finestra


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 8:52
Giovedì, 26/03/2015
devi usare per forza un timer con form senza bordi.

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

Codice sorgente - presumibilmente C++

  1. public void Attesa()
  2. {
  3.  
  4. Attendi(5000);
  5.  
  6. }
  7.  
  8.  
  9.  public IEnumerator Attendi(int tempo)
  10.  {
  11.    
  12. yield return tempo;
  13.  
  14.  }



Ma ottengo la stessa funzione del freeze.

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

Codice sorgente - presumibilmente C# / VB.NET

  1. protected override void OnShown(EventArgs e)
  2.         {
  3.             base.OnShown(e);
  4.            
  5.            //Richiamo del thread o dell'Enumeratore
  6.  
  7.         }




Ultima modifica effettuata da Thejuster il 26/03/2015 alle 9:50


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
archemi (Normal User)
Pro


Messaggi: 70
Iscritto: 08/01/2014

Segnala al moderatore
Postato alle 15:11
Venerdì, 27/03/2015
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

Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.  
  3.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  4.         Timer1.Interval = 5000
  5.         Timer1.Start()
  6.     End Sub
  7.  
  8.     Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  9.         Me.Close()
  10.     End Sub
  11. End Class


Ultima modifica effettuata da archemi il 27/03/2015 alle 15:15
PM Quote
Avatar
Snogar (Normal User)
Pro


Messaggi: 145
Iscritto: 09/01/2012

Segnala al moderatore
Postato alle 16:36
Venerdì, 27/03/2015
Scusa ma stai cercando di fare uno splash screen?  ...nel caso visual studio già lo contempla.

PM Quote