Non credo sia un effetto intuitivo per l'utente vedersi nascondere una finestra per visualizzarne un'altra...al massimo, suggerirei di aprire semplicemente la seconda finestra di dialogo "modale" impedendo, fino a quando questa non viene chiusa, l'accesso alla prima.
Quest'operazione è possibile usando il metodo ShowDialog di cui la classe della propria form dispone in quanto eredita da System.Windows.Forms.Form.
Per vedere le versioni e l'utilizzo del metodo, fai riferimento alla Guida in linea.
Tanto per fornire un esempio, supponendo di avere una form principale dalla quale desideriamo visualizzare una form secondaria appartenente alla classe di nome DialogForm attraverso la pressione di un pulsante, potremo scrivere un codice simile al seguente:
In questo codice, viene dichiarata una variabile di tipo DialogForm di cui viene creata un'istanza; attraverso l'identificatore Me che rappresenta l'istanza della form principale dalla quale viene premuto il pulsante, chiamiamo i metodi Hide e Show per nascondere e visualizzare la form principale, rispettivamente.codice:Private Sub DialogButtonClick(sender As System.Object, e As System.EventArgs) Dim dialogForm As New DialogForm Me.Hide() dialogForm.ShowDialog() Me.Show() End Sub
Il metodo ShowDialog della form secondaria permette di visualizzare la form e attendere che questa venga chiusa prima di proseguire nell'esecuzione del codice.
Infatti, la chiamata al metodo Show e quindi il ripristino della visibilità del form principale avverrà solo quando la form secondaria verrà chiusa.
Ad ogni modo, ritengo essenziale fare riferimento alla Microsoft .NET SDK Documentation per vedere tutte le versioni di ShowDialog a disposizione e le potenzialità che offre tale metodo, che vanno al di là del semplice "apri una finestra" (c'è la possibilità di restituire un valore di ritorno in base al responso dell'utente e altro ancora...).
Ciao!![]()

Rispondi quotando