Riferimenti a controlli tra due o più forms

di il
5 risposte

Riferimenti a controlli tra due o più forms

Ho questo codice:

Public Class main
   Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Dim f As New Primo
       Dim g As New Secondo
       f.MdiParent = Me
       g.MdiParent = Me
       f.Show()
       g.Show()
       f.Location = New Point(100, 100)
       g.Location = New Point(500, 100)
   End Sub
End Class

Il form Secondo necessita di un dato presente su form Primo. Non funzionano nè textSecondo.text=Primo.textPrimo.text  e logicamente neanche  textSecondo.text=f.textPrimo.text.

Come posso fare riferimento ad un controllo del form Primo?

Grazie.

5 Risposte

  • Re: Riferimenti a controlli tra due o più forms

    Prova a modificarlo in:

    [code]
    Public Class main
       Public f As Primo
       Public g As Secondo
       Private Sub Main_Load(sender As Object, e As EventArgs) Handles MyBase.Load
           f = New Primo
           g = New Secondo
           f.MdiParent = Me
           g.MdiParent = Me
           f.Show()
           g.Show()
           f.Location = New Point(100, 100)
           g.Location = New Point(500, 100)
       End Sub
    End Class
    [/code]

    E poi nel form Secondo:[code]
    textSecondo.text = main.f.textPrimo.text

    [/code]

    P.S.: come si usano i tag [code] ???

  • Re: Riferimenti a controlli tra due o più forms

    27/12/2022 - Jan ha scritto:


    Il form Secondo necessita di un dato presente su form Primo. Non funzionano nè textSecondo.text=Primo.textPrimo.text  e logicamente neanche  textSecondo.text=f.textPrimo.text.

    Questo perché Primo è il nome della classe che rappresenta un Form, ma non è l'oggetto Form con cui si vuole interagire.

    Per sviluppare in .NET, è essenziale comprendere bene la differenza tra classi e oggetti.

  • Re: Riferimenti a controlli tra due o più forms

    Ovviamente Alka ti ha detto quale sia il problema….

    Deduco che usi VS quindi non capisco (io almeno) perchè ostinarsi a specificare la Location, il size etc… quando già di suo nelle proprietà lo specifica VS e che puoi modificare facilmente, sostanzialmente scrive per te il codice per posizione, grandezze, bottoni etc… poi vedo che in tanti lo rispecificate…. magari è un vecchio modo di fare da VB6 non saprei… io lo trovo inutile (sempre quando sai cosa fai)

    Detto questo, il nome del Form dove ti trovi è MyBase se non erro…. quindi avrai un form secondario che avrà un proprio nome no?

    se in questo load scrivi:

    nometextboxchevuoi.txt = nomeform.textboxconidati.text

    funziona per forza, risultano tutti imparentati con VS devi solo specificare in che form sta il controllo che vuoi usare.

  • Re: Riferimenti a controlli tra due o più forms

    28/12/2022 - orione1976 ha scritto:


    Ovviamente Alka ti ha detto quale sia il problema….

    Deduco che usi VS quindi non capisco (io almeno) perchè ostinarsi a specificare la Location, il size etc… quando già di suo nelle proprietà lo specifica VS e che puoi modificare facilmente, sostanzialmente scrive per te il codice per posizione, grandezze, bottoni etc… poi vedo che in tanti lo rispecificate…. magari è un vecchio modo di fare da VB6 non saprei… io lo trovo inutile (sempre quando sai cosa fai)

    Detto questo, il nome del Form dove ti trovi è MyBase se non erro…. quindi avrai un form secondario che avrà un proprio nome no?

    se in questo load scrivi:

    nometextboxchevuoi.txt = nomeform.textboxconidati.text

    funziona per forza, risultano tutti imparentati con VS devi solo specificare in che form sta il controllo che vuoi usare.

    Grazie del suggerimento.Quando scrivo qualche riga di codice non ho una regola fissa da seguire : a volte modifico le proprietà di un oggetto,a volte le digito direttamente .Mi capitano tutte e due le cose.

    Preciso una cosa : ho 3 forms : Main è un MdiContainer ed ospita Primo e Secondo. 

    Come ho indicato nel post iniziale (Il form Secondo necessita di un dato presente su form Primo. Non funzionano nè textSecondo.text=Primo.textPrimo.text  e logicamente neanche  textSecondo.text=f.textPrimo.text.) ho avuto esito negativo.

    Grazie comunque per il tuo intervento. 

  • Re: Riferimenti a controlli tra due o più forms

    27/12/2022 - SirJo ha scritto:


    Prova a modificarlo in:

    …omissis…

    E poi nel form Secondo:[code]
    textSecondo.text = main.f.textPrimo.text

    Funziona perfettamente . Grazie mille.

Devi accedere o registrarti per scrivere nel forum
5 risposte