Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    16

    [VB.net] come aprire una seconda form

    Salve,
    sto cercando di creare un'interfaccia tipo wizard.

    il problema che incontro è nel far aprire dalla prima form una seconda form già creata.

    Ho provato con l'istruzione show, ma l'accetta solo se gli faccio creare una nuova form.

    le righe di programma sono:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    TextBox1.Text = "ciao"
    Dim Form2 As New Form
    Form2.Show()

    End Sub

    io invece vorrei che nel momento che clicco sul button mi aprisse una form già esistente.
    Grazie

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    La spiegazione del tuo problema non è molto chiara.

    Se parli di un "form già esistente", significa che l'hai precedentemente creato in memoria e pertanto ne avrai memorizzato il riferimento da qualche parte... usa quel riferimento per chiamare il metodo Show e visualizzare il form.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    16
    La form creata fa parte dello stesso progetto, non si trova in un'altra directory.
    Devo creare un wizard quindi la seconda form fa parte del progetto.

    In pratica il progetto è costituito da due form e tramite un button vorrei riuscire a passare dalla prima alla seconda.
    Spero di esser stata più chiara,

    Gazie

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da labia
    In pratica il progetto è costituito da due form e tramite un button vorrei riuscire a passare dalla prima alla seconda.
    Fai uno Show della seconda e richiama il metodo Close (o Hide?) della prima.

    In generale, comunque, i wizard hanno luogo all'interno di un'unica finestra.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    16
    Ho riflettuto sul fatto che i wizard hanno luogo in un'unica finestra ed infatti mi sembra più congeniale. Grazie per il consiglio.

    Volevo avere un'informazione riguardo all'apertura di un progetto con VB.net perchè il manuale che adopero è vb6 quindi se aprissi un progetto lì mi viene detto che aprirei delle form standard, invece con il .net quando apro un nuovo progetto la form è collocata in una classe. Se aggiungo una nuova form nello stesso progetto questa fa parte di una nuova classe distinta da quella della prima form.
    Per questo motivo credo di avere difficoltà ad aprire una seconda form, perchè fann parte di due classi distinte.

    Ciao

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    So che non è molto d'aiuto, ma purtroppo per fare le cose al meglio credo sia necessario capire i meccanismi del framework e della programmazione ad oggetti, altrimenti si rischia di costruire applicazioni poco funzionali o che generano problemi difficili da individuare.

    Ho scritto qualcosa di simile anche in questa discussione.

    Parlando del tuo problema in modo specifico, ciascun Form che aggiungi al tuo progetto definisce la classe di un form differente, cioè di fatto rappresenta un "modello" di caratteristiche e comportamenti che dipende dai componenti e dai controlli che inserisci, dal codice che scrivi nell'implementazione e così via.

    La grande differenza tra VB6 e VB.NET è dato dal fatto che il secondo non consente di utilizzare direttamente la classe di un form poichè tale classe serve solamente a spiegare come funziona il form, ma è necessario creare prima un'istanza del form per poterlo utilizzare.

    Facendo un paragone ardito, il rapporto tra classe del form e sua istanza è lo stesso che intercorre tra il modello di un'automobile e l'automobile concreta.

    Certo, VB6 è più immediato, ma ad esempio non potresti mai creare due copie distinte di un form (ma con lo stesso comportamento) senza creare manualmente o duplicare la form esistente attribuendole un altro nome e facendo copia e incolla, duplicando ovviamente anche tutti gli errori che quel codice potrebbe contenere.

    Purtroppo, rispondo spesso in questo modo poichè, per poter dare una risposta esaustiva a domande come la tua, si dovrebbero affrontare concetti di programmazione orientata agli oggetti (OOP) che sono troppo estesi e articolati per poter essere affrontati in questo spazio, e non ho il tempo materiale per tenere un corso a distanza.

    Quando ci si trova alle prime armi, meglio ricorrere pazientemente a tutorial e documentazione e procedere con calma, sempre se è possibile farlo, all'apprendimento dei principi di funzionamento dei linguaggio OOP e dell'architettura del framework, altrimenti ci si ritroverà irrimediabilmente fermi alla minima difficoltà, soprattutto se si proviene da un linguaggio come VB6 che impone un modello difficile da abbandonare quando si sono prese certe abitudini.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    16
    Grazie per le spiegazioni.Mi sono state di grande aiuto.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.