Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    57

    VB.Net passaggio di variabili tra 2 form

    Salve a tutti,
    sono disperato ke qualcuno m aiuti!!!!
    E' da 2 giorni che ho cominciato a vedere vb.net e questo è il problema: dal form1 apro il form2 passandogli una variabile, ora il form2 deve modificare questa variabile e ripassarla al form1 senza però usare form1.showdialog: aperto il form2 deve essere possibile tornare al form1 col form2 aperto.
    Vi ringrazio sin d'ora.
    E' un giorno ke c vado dietro!!!!

  2. #2
    Puoi dichiarare, in Form2, un membro pubblico o meglio ancora una proprietà pubblica come nell'esempio che segue:
    codice:
    'in una sub di Form1:
    Dim f As New Form2
    f.ShowDialog()
    Console.WriteLine(f.MioDato)
    
    'in Form2:
    Private m_miodato As Integer
    
    Public Property MioDato() As Integer
        Get
            Return m_miodato
        End Get
        Set(ByVal Value As Integer)
            m_miodato = Value
        End Set
    End Property
    Da notare che immediatamente sotto alla chiamata del metodo ShowDialog il form è ancora esistente e si può ancora interagire con esso.
    Chi non cerca trova.

  3. #3
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    sapete che esiste la ricerca del forum?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    57
    Non m sono spiegato bene, chiarisco il discorso.
    Form1 ha un textbox, il contenuto lo passa a form1 attraverso un button. Sul textbox2 di form2 viene visualizzato ciò che c'era scritto in quello di form1. Modificando il contenuto di textbox2 e cliccando sul button cambia di form2 voglio che il contenuto venga visualizzato sulla textbox1 di form1, ma mentre è aperto form2 devo essere capace di continuare ad usare form1.
    Scusate l'ingrippamento del discorso, se volete chiarimenti.....
    cmq questo è il codice:
    Form1:::

    Private Sub Ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ok.Click

    Dim testo As String
    Dim myform As New Form2
    myform.testo = Me.TextBox1.Text
    myform.ShowDialog()
    Me.TextBox1.Text = myform.Txt1.Text



    End Sub

    Private Sub btnexit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnexit.Click
    Me.Close()
    End Sub
    End Class

    Form 2::
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Txt1.Text = testo

    End Sub

    Private Sub BtnChange_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnChange.Click
    me.close
    End Sub


    End Class

    Così funziona, ma mentre è aperto form2 non posso usare form1
    Grazie cmq x la risposta

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    57
    Il probelam quindi è :
    Su form1 all'evento click del button voglio usare show per visualizzare il form 2.
    Cosa devo mettere nell'evento click del button del form ??????
    Mannaggia!!!!!

  6. #6
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    in vb.net i form sono classi quindi devi crearti un nuovo oggetto instanziando la classe form che ti interessa e poi chiami il metodo show dell'oggetto appena creato

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    57
    In questa maniera non ottengo circa 100000 di form???
    Voglio usare l'oggetto form1 creato, non crearne un altro. Se mi facesse il "refresh" di form1 riuscirei a darci fuori!

  8. #8
    Prova così, l'argomento è già stato trattato più volte.
    codice:
    'in Form1
    Private Sub Ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Ok.Click 
        Dim testo As String 
        Dim myform As New Form2 
    
        myform.Owner = Me     '<===
        'myform.testo = Me.TextBox1.Text 
        myform.ShowDialog() 
        'Me.TextBox1.Text = myform.Txt1.Text 
    End Sub
    
    'in Form2
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
        Dim f As Form1
    
        f = Me.Owner
        Me.Txt1.Text = f.Textbox1.Text
    End Sub 
    
    Private Sub BtnChange_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnChange.Click 
        Dim f As Form1
    
        f = Me.Owner
        f.Textbox1.Text = Me.Txt1.Text
    
        Me.close
    End Sub
    Ciao

    P.S. se la prossima volta usi il tag CODE per postare il tuo codice risulterà a tutti molto più leggibile
    Chi non cerca trova.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2001
    Messaggi
    57
    :quote:
    Ringrazio tas, con le opportune modifiche del tuo codice la storia funge.
    Tanks a lot
    :metallica

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.