Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ti faccio notare che sia il tipo che il nome della variabile hanno la minuscola. In realtà stai utilizzando solo una delle due, quindi una riga è superflua.
Se vuoi visualizzare un form ci sono due modi per farlo:
1- Dichiari una nuova variabile. Il tipo di questa variabile corrisponde al nome del form che vuoi fare vedere.
Codice sorgente - presumibilmente C# / VB.NET
Dim F As New Form2
Poi richiami il metodo Show oppure ShowDialog, e non tutti e due insieme. La differenza è che il primo ti consente di accedere anche a tutti gli altri form aperti, mentre il secondo ti obbliga a chiudere l'ultimo form aperto prima di continuare.
2- Usi le istanze predefinite dei form, nel namespace My. Si usa la sintassi My.Forms. seguita dal nome del form:
N.B.: questo discorso vale se dichiari la variabile-form in una sub e non a livello di classe.
Ciao Totem e ciao anche a Luk3.
Mamma mia quanto è complicato tutto questo discorso.
Quasi quasi mi fa venire la voglia di rinunciare ad imparare, ma, poiché il mio programma l'ho quasi terminato, desidero portarlo avanti fino in fondo.
ho provato a fare ciò che tu, Totem mi consigli, cioè:
1- Dichiari una nuova variabile. Il tipo di questa variabile corrisponde al nome del form che vuoi fare vedere.
Dim F As New Form2 L'ho fatto con il seguente risultato:
Codice sorgente - presumibilmente VB.NET
PrivateSub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles RadioButton2.CheckedChanged
Dim FORMA_CALENDARIO AsNew Form2
Dim PROGRAMMAZIONE AsNew Form3
Dim VEDI_PROGRAMMA AsNew Form4
Form3.Show()
Form1.Close()
EndSub
Ovviamente ometto tutte le altre Private Sub per non rubare spazio.
Per tutte e tre le Form mi presenta questo errore:
Tipo 'Form2' non definito.
Proseguendo poi lungo la Private Sub(come puo vedere), ho inserito:
Codice sorgente - presumibilmente Plain Text
Form3.Show()
Form1.Close()
E qui mi segnala altri 2 errori:
Il primo si riferisce a
Form3.Show()
e dice:
Codice sorgente - presumibilmente Plain Text
Nome 'Form3' non dichiarato.
Eppure, come si può vedere chiaramente più in alto, la Form3 è dimensionata insieme con le altre due.
Il secondo errore poi, che mi segnala, si riferisce a
Form1.Close()
e dice:
Codice sorgente - presumibilmente Plain Text
'WindowsApplication1.Form1' non può fare riferimento a se stesso mediante la sua istanza predefinita.
La Form1 è quella del programma che deve richiamare le altre Form e una volta che ne ha richiamata una, deve sparire per non avere due Form attive sul computer.
Poi, nel tuo Post mi dici:
Codice sorgente - presumibilmente C# / VB.NET
2- Usi le istanze predefinite dei form, nel namespace My. Si usa la sintassi My.Forms. seguita dal nome del form:
My.Forms.Form2
Io le ho preparate
Codice sorgente - presumibilmente Plain Text
My.Forms.Form2
My.Forms.Form3
My.Forms.Form4
Ma, scusa la mia immensa ignoranza, non so dove trovare "le istanze predefinite dei form", per cui non so dove inserirle.
Ancora una volta chiedo scusa per l'ignoranza che evidenzio, ma il desiderio di portare a termine questo mio programma è così grande che anche di notte, credimi, penso e sogno i problemi che lui mi propone.
Ringrazio te e Luk3 per la pazienza dimostrata nei miei confronti e domando:
Ritieni che riuscirò a portare a termine l'impresa?
Io spero immensamente di sì.
Mille grazie.
alpi39 (Alberto)
Ma a me pare così ovvio: se ti dice che form3 non è dichiarato, significa che non esiste. Quindi nel tuo progetto non c'è nessun form di nome "Form3", perciò perchè usarlo?
Forse non capisci cosa si intende per tipo.
Ammettiamo di avere questo form:
Codice sorgente - presumibilmente C# / VB.NET
Public Class UnMioForm
'...
End Class
Per farlo vedere si usa:
Codice sorgente - presumibilmente C# / VB.NET
Dim F As New UnMioForm
F.Show()
oppure:
Codice sorgente - presumibilmente Plain Text
My.Forms.UnMioForm
Le istanze predefinite dei form sono tutti i membri di My.Forms, che tu NON devi e NON puoi dichiarare, perchè, essende predefinite, sono già impostate. Te l'ho scritto, non pretendevo che lo sapessi: te lo stavo spiegando.
Ah, e quando ti dice che non puoi richiamare Form1 da se stesso, basta usare Me al suo posto:
Codice sorgente - presumibilmente Plain Text
Me.Close()
Ultima modifica effettuata da Il Totem il 03/09/2008 alle 18:28
Ma a me pare così ovvio: se ti dice che form3 non è dichiarato, significa che non esiste. Quindi nel tuo progetto non c'è nessun form di nome "Form3", perciò perché usarlo?
Ciao Totem
So che tu sei un maestro in VB.NET e quel che dici, per me è verità.
Ma in questo caso credo sia il computer che non dice la verità o, quasi certamente io non lo metto in condizioni di controllare che sia vero, perché, come dimostrano queste poche righe di codice, la Form3 esiste:
Codice sorgente - presumibilmente VB.NET
Imports System.IO
PublicClass Form3
Dim NomeTestata AsString=""
Dim Periodico AsString=""
E la Form3 è quella dove è sviluppato il programma PROGRAMMAZIONE come puoi controllare d un mio post precedente.
Quasi certamente, anzi, certamente sono io, incapace, a digitare il codice come deve essere digitato e allora, ti posto il codice relativo al RadioButton2 chè quello che deve richiamare la Form3
Codice sorgente - presumibilmente VB.NET
PrivateSub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles RadioButton2.CheckedChanged
Dim PROGRAMMAZIONE AsNew Form3
PROGRAMMAZIONE.Show()
Me.Close()
EndSub
Mi sembra di aver fatto le cose come tu mi hai consigliato o, forse c'è qualcosa di inesatto?
E l'errore che mi segnala è:
Codice sorgente - presumibilmente Plain Text
Errore 1 Tipo 'Form3' non definito.
E poi, un'altra cosa:
Il programma si compone di 29 righe e lui (il programma) mi segnala un altro errore:
Codice sorgente - presumibilmente Plain Text
Errore 2 Prevista espressione.
(riga)223 (Colonna)26
Ripeto che il programma è composto da sole 29 righe e la riga 223 NON ESISTE.
Grazie per la tua pazienza.
alpi39 (Alberto)
Ultima modifica effettuata da alpi39 il 04/09/2008 alle 15:03
Sì, riga 223 ma di quale file? Stai a vedere che ti indica l'errore su form3.vb e che a causa di quello non può riconoscere la classe form3 come esistente.
Controlla in quale file è l'errore, e poi metti la riga corrispondente qua sul forum.
Sì, riga 223 ma di quale file? Stai a vedere che ti indica l'errore su form3.vb e che a causa di quello non può riconoscere la classe form3 come esistente.
Controlla in quale file è l'errore, e poi metti la riga corrispondente qua sul forum.
Ciao Totem
Anch'io, nella mia ignoranza avevo fatto questa supposizione e sono andato a controllare la riga 223 della Form3, ma in quella riga c'è una semplice operazione di assegnazione ad una variabile. Questo, il codice della riga:
Codice sorgente - presumibilmente Plain Text
X = Anno
inoltre, l'errore che il programma mi segnala alla riga 223, si troverebbe alla colonna 26, mentre questa riga, compresi gli spazi alla sua sinistra, ha soltanto 17 colonne.
Inoltre, il programma che mi segnala l'errore (il quale programma, ripeto, ha soltanto 29 righe di codice), (nell'elenco degli errori), sotto la colonna con la voce "File" mi indica chiaramente che l'errore è nella Form1.vb (la sua Form), ma alla destra dell'elenco, sotto la colonna "Progetto", non c'è nessun nome del progetto.
Non contento, sono andato a controllare anche le altre 2 Form (la Form2 e la Form4) e la Form4 ha soltanto 104 righe di codice mentre la Form2 alla riga 223 ha questa ulteriore riga di assegnazione:
Codice sorgente - presumibilmente Plain Text
Giorno = Str(X) + " " + Mese
dove assegna alla variabile Giorno il valore di X + uno spazio + il nome del Mese. Niente, quindi, che abbia bisogno di un'espressione.
Per me, è un'incognita che non riesco a risolvere.
E per queste altre righe di codice per la "definizione" della Form3, cosa ne pensi?
è corretta?
Codice sorgente - presumibilmente VB.NET
PrivateSub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles RadioButton2.CheckedChanged
Dim PROGRAMMAZIONE AsNew Form3
PROGRAMMAZIONE.Show()
Me.Close()
EndSub
Grazie mille nuovamente Totem dell'assistenza che mi dai.
alpi39 (Alberto)
Ultima modifica effettuata da alpi39 il 05/09/2008 alle 14:11