Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    23

    problema con i form

    ciao ragazzi...
    non sono un grande esperto di vb.net... e si vede!
    ho due progetti fatti con visual studio .net, due semplici windows form.
    come posso fare ad unirli in modo che premendo un bottone del primo venga eseguito il secondo ? (ovviamente i form interagiscono tra loro lavorando con variabili in comune)

    ho provato ad importare nel primo progetto il codice del secondo (dopo aver sostituito tutte le occorrenze form1 con form2) però non so come eseguirlo alla pressione del bottone!?

    help
    darxstar

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Nell'evento Click del bottone sul Form1 scrivi:
    codice:
    Form2.Show

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    23
    grazie mabi!

    a dire il vero ci avevo provato...
    ma il responso del compilatore è :

    "IL RIFERIMENTO A UN MEMBRO NON CONDIVISO RICHIEDE IL RIFERIMENTO AD UN OGGETTO" Amen.

    A questo punto ho cambiato una proprietà di Form2 dal pannello delle proprietà:
    Operazioni di Generazione: da Compilazione a Risorsa Incorporata.

    Ora il compilatore di Form2.Showd() dice semplicemente:
    Nome Form2 non dichiarato.

    che si fa?
    darxstar

  4. #4
    Utente di HTML.it L'avatar di Manuweb
    Registrato dal
    Nov 2002
    Messaggi
    108
    Prova in questo modo
    codice:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim frm As New Form2()
            frm.ShowDialog()
        End Sub

  5. #5
    Utente di HTML.it L'avatar di Manuweb
    Registrato dal
    Nov 2002
    Messaggi
    108
    showdialog corrisponde all'apertura modale del form
    altrimenti puoi usare show()

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    23
    mitici !
    G R A Z I E !
    darxstar

  7. #7
    l'unica sfortuna è che con il comando showdialog non puoi interagire contemporaneamente con i due form.Quando apri il secondo il secondo si blocca finchè non chiudi il secondo...

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    23
    ...rieccomi... risolto un problema ne arriva un'altro...

    ok io istanzio un nuovo form2 e lo apro con form2.show()

    ma ora form2 deve utilizzare una funzione definita in form1 e passargli dei parametri.
    ho lo stesso problema... "il riferimento ad un membro non condiviso richiede il riferimento d un oggetto..."
    ora però non posso istanziare un nuovo form1... ma dovrei riferirmi a quello esistente... credo... qual'è il metodo corretto??

    bye
    darxstar

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    23
    help raga...

    ancora mi sfugge come accedere agli oggetti e alle funzioni del form che ne ha chiamato un altro...!!

    riepilogo:

    form1 contiene il main e un sacco di funzioni, procedure, e oggetti simpatici

    form1 chiama form2 che altro non è che una maschera per l'inserimento di nome e password.

    nel chiudersi form2 dovrebbe passare a una funzione dichiarata in form1 i valori 'nome' e 'password' (come parametri).

    quest'ultima operazione resta per me (per ora... )un mistero.
    chi mi fa un riassunto di come dovrebbe funzionare un programma multi form?

    thanks

    aggiunta (scopert ora ora) : form2 pare che non sia mdichild
    è un dettaglio rilevante?
    darxstar

  10. #10
    Utente di HTML.it L'avatar di biste
    Registrato dal
    Apr 2001
    Messaggi
    877
    Originariamente inviato da darxstar

    chi mi fa un riassunto di come dovrebbe funzionare un programma multi form?

    thanks
    Sicuramente c'è un'istanza di Form1 in memoria (il form che vedi girare quando parte l'applicazione).
    Crei un'istanza di Form2 (Dim f as new form2()) e poi la visualizzi (f.Show())...
    Prima però dovresti memorizzarti da qualche parte un puntatore all'istanza di Form1.
    Una soluzione potrebbe essere passare a Form2 l'istanza di Form1, o più genericamente l'istanza di chi l'ha chiamato...
    Quindi puoi ad esempio creare una proprietà pubblica nella classe Form2 che riceve un oggetto di tipo Form1 o System.Windows.Forms.Form
    Da questa ora puoi accedere ai metodi pubblici della tua classe chiamante.

    HTH
    UGIdotNET
    Microsoft .NET MCAD
    C++, C#, VB6, VB.NET, ASP, ASP.NET
    SQL Server 2000

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.