Oppure

Loading
14/09/08 7:45
Il Totem
Beh, se è una nuova form, non c'è su niente, perciò è normale che sia bianca. Più strano è che sparisca subito. Codice prego.
aaa
14/09/08 17:35
alpi39
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:

Public Class Form1

    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged

        Dim form2 As New Form2

        Dim CALENDARIO As New Form
        CALENDARIO.Show()

        Me.Close()
    End Sub

    Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged

        Dim form3 As New Form3()
        Dim PROGRAMMAZIONE As New Form
        PROGRAMMAZIONE.Show()

        Me.Close()
    End Sub

    Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged

        Dim form4 As New Form4

        Dim PROGRAMMA As New Form
        PROGRAMMA.Show()

        Me.Close()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Close()
    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 14/09/08 17:40
aaa
15/09/08 13:47
Il Totem
Grazie, ma io penso che tu abbia ancora qualche problema a capire le classi...
Dim form2 As New Form2
Dim CALENDARIO As New Form
CALENDARIO.Show()

Me.Close() 

Ti analizzo questo codice, e vale per tutte e tre:
-
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:

-
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.

-
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.

-
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:
totem.altervista.org/guida/versione2/…
aaa