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 - Come fare per richiamar una (o un) Form?
Forum - C# / VB.NET - Come fare per richiamar una (o un) Form? - Pagina 4

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
alpi39 (Normal User)
Pro


Messaggi: 63
Iscritto: 07/03/2008

Segnala al moderatore
Postato alle 19:35
Domenica, 14/09/2008
Testo quotato

Postato originariamente da Il Totem:

Beh, se è una nuova form, non c'è su niente, perciò è normale che sia bianca. Più strano è che sparisca subito. Codice prego.



Ciao Totem.
Questo è il codice:
Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.  
  3.     Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
  4.  
  5.         Dim form2 As New Form2
  6.  
  7.         Dim CALENDARIO As New Form
  8.         CALENDARIO.Show()
  9.  
  10.         Me.Close()
  11.     End Sub
  12.  
  13.     Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
  14.  
  15.         Dim form3 As New Form3()
  16.         Dim PROGRAMMAZIONE As New Form
  17.         PROGRAMMAZIONE.Show()
  18.  
  19.         Me.Close()
  20.     End Sub
  21.  
  22.     Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
  23.  
  24.         Dim form4 As New Form4
  25.  
  26.         Dim PROGRAMMA As New Form
  27.         PROGRAMMA.Show()
  28.  
  29.         Me.Close()
  30.     End Sub
  31.  
  32.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  33.         Me.Close()
  34.     End Sub


Come puoi vedere, la fom che la Form1 deve richiamare non è una, bensì sono tre.
La Form2 (già completata con codice e grafica) è la Form che crea il calendario.
La Form3 (quasi completata) è quella che registra sul calendario, sia le uscite in edicola dei periodici e, sia le fasi di lavorazione degli stessi.
La Form4 (già completata con codice e grafica) è quella che, inserendo una data fa vedere cosa c'è in programma quel giorno (uscite in edicola e fasi di lavorazione).
Tutto questo richiamando con la Form1 il programma che interessa.
Form1 che è completa sia di codice che di grafica.
Il problema è che quando ho sul monitor la Form1 e visualizzo la finestra di progettazione, volendo effettuare il Debug della stessa, il Debug non lo effettua e per qualche istante appare una Form bianca che poi subito sparisce.
Poi, desidererei sapere se il metodo delle tre cartelle con all'interno la Form relativa che ho descritto nel mio precedente Post è giusta o no.
Grazie infinite Totem.
Sei veramente un Guru.
alpi39 (Alberto)

Ultima modifica effettuata da alpi39 il 14/09/2008 alle 19:40
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 15:47
Lunedì, 15/09/2008
Grazie, ma io penso che tu abbia ancora qualche problema a capire le classi...
Codice sorgente - presumibilmente VB.NET

  1. Dim form2 As New Form2
  2. Dim CALENDARIO As New Form
  3. CALENDARIO.Show()
  4.  
  5. Me.Close()


Ti analizzo questo codice, e vale per tutte e tre:
-
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim form2 As New Form2


Questo codice crea un nuovo oggetto di tipo form2, ossia il form che devi visualizzare, completo di pulsanti, liste, e altri controlli. Tuttavia, una volta creato, lo lasci lì senza neanche usarlo, rendendo questa linea di codice inutile. Peccato che sia l'unica riga giusta :rotfl:

-
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim CALENDARIO As New Form


Crei un nuovo oggetto di tipo Form. Devi capire la differenza che c'è tra Form e Form2 (o Form1 o Form3 o quello che vuoi). Il tipo Form rappresenta una generica finestra VUOTA, in cui è presente solo lo sfondo grigio e il bordo, niente di più. Da Form derivano altre classi tramite ereditaerietà (un concetto importantissimo che devi conoscere: visita la mia guida in caso contrario). La derivazione implica che Form2 abbia tutto quello che ha già Form, con l'aggiunta di qualcosa. In particolare, quando dici Form2, intendi "quella particolare Form, con quei particolari pulsanti, quella particolare lista, che ha quel particolare compito" e non "un generico form, solo con un 2 alla fine del nome". Per ricordarti di questo ti suggeriscono di NON chiamare MAI (o almeno finché tu non abbia appreso il conetto) un Form con un numero, ma dargli uno specifico nome. Se serve per un calendario, lo chiamerai "FormCalendario", se è per la programmazione "FormProgrammazione", e così via.

-
Codice sorgente - presumibilmente Plain Text

  1. CALENDARIO.Show()


Fai vedere il form CALENDARIO, ma tu l'hai espressamente dichiarato come un generico e basilare Form, ossia una finestra senza niente. E' normale che sia vuota.

-
Codice sorgente - presumibilmente Plain Text

  1. Me.Close()


Questo non puoi saperlo, ma le applicazioni windows sono programmate per terminare quando il form principale viene chiuso. Rchiamando Me.Close, quindi, istruisci implicitamente il computer di terminare l'applicazione. Per cambiare questo settaggio, devi andare nelle proprietà del progetto e specificare in Shutdown Mode (modalità di chiusura) la voce "When last form closes" (quando si chiude l'ultimo form), come illustrato qui:
http://totem.altervista.org/guida/versione2/E1.php

PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo