Oppure

Loading
03/09/08 9:29
Luk3
No doubts About, ma in C#

form1 form1 = new form1();
form1.showdialog();

va alla grande;)
aaa
03/09/08 9:50
Il Totem
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.
aaa
03/09/08 9:57
Luk3
Si questo è vero, ma non avevo voglia di premere caps lock :rotfl::rotfl::rotfl:
aaa
03/09/08 15:07
alpi39
Postato originariamente da Il Totem:

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.
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:
My.Forms.Form2

totem.altervista.org/guida/versione2/…

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:

    Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
        Dim FORMA_CALENDARIO As New Form2
        Dim PROGRAMMAZIONE As New Form3
        Dim VEDI_PROGRAMMA As New Form4

        Form3.Show()
        Form1.Close()
    End Sub


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:

        Form3.Show()
        Form1.Close()


E qui mi segnala altri 2 errori:
Il primo si riferisce a

Form3.Show()

e dice:

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:

'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:

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

    
    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)
aaa
03/09/08 16:26
Il Totem
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:
Public Class UnMioForm
'...
End Class

Per farlo vedere si usa:
Dim F As New UnMioForm
F.Show()

oppure:
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:
Me.Close()
Ultima modifica effettuata da Il Totem 03/09/08 16:28
aaa
04/09/08 12:42
alpi39
Postato originariamente da Il Totem:

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:

Imports System.IO
Public Class Form3

    Dim NomeTestata As String = ""
    Dim Periodico As String = ""


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

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

        Dim PROGRAMMAZIONE As New Form3
        PROGRAMMAZIONE.Show()

        Me.Close()
    End Sub


Mi sembra di aver fatto le cose come tu mi hai consigliato o, forse c'è qualcosa di inesatto?
E l'errore che mi segnala è:

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:

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 04/09/08 13:03
aaa
05/09/08 9:30
Il Totem
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.
aaa
05/09/08 12:00
alpi39
Postato originariamente da Il Totem:

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:

         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:

                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?

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

        Dim PROGRAMMAZIONE As New Form3
        PROGRAMMAZIONE.Show()

        Me.Close()
    End Sub


Grazie mille nuovamente Totem dell'assistenza che mi dai.
alpi39 (Alberto)
Ultima modifica effettuata da alpi39 05/09/08 12:11
aaa