Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [vb2010 WPF] Come passare una variabile tra due form

    Sto facendo le prime esperienze con Visual Studio 2010.
    Il mio problema e’ esattamente quello che Voi proponete come esempio nel regolamento del Forum, ma nelle vecchie discussioni non ne ho trovato traccia, percio’ lo ripropongo.
    Come e’ possibile passare variabili o classi tra due form senza utilizzare Variabili di appoggio dichiarate pubbliche.

    Esempio:

    Per Form1 intendo la form che chiama la Form2 utilizzando l’istruzione
    Form2.ShowDialog()

    Nell’evento Window_Loaded della Form2 (Form chiamata) vorrei poter leggere una classe definita nella Form1 utilizzando l’istruzione

    CampoForm2.Content = My.Windows.Form1.CampoForm1.Text

    Ho gia’ utilizzato questo metodo con altri linguaggi, senza incontrare problemi; ed in realta’ anche qui non ho avuto problemi, senonche’ la variabile CampoForm1.text risulta vuota.
    Dove sbaglio o cosa trascuro ?

    Spero che qualcuno mi possa aiutare.
    Buon lavoro a tutti

  2. #2
    La sintassi My.Windows.Form1 è stata aggiunta da Microsoft per facilitare la conversione dei progetti VB6 in VB.NET. Purtroppo si tratta di qualcosa che fa a botte con i principi della programmazione ad oggetti, che sconsiglio vivamente di usare in quanto prima o poi tale sintassi verrà definitivamente abbandonata.

    Detto questo, il modo di passare valori tra un form e l'altro è sempre il medesimo sia se si parla di WinForm che di WPF.
    Nel Form1:
    codice:
    'nelle dichiarazioni:
    Public Property MioOggetto() As MiaClasse
    
    'in un metodo o evento:
    Dim f As New Form2
    f.Owner = Me
    f.ShowDialog()
    Nel Form2:
    codice:
    'faccio il cast di Me.Owner sul tipo Form1
    Dim f As Form1 = CType(Me.Owner, Form1)
    
    'utilizzo i dati dichiarati nel form1...
    Dim obj As MiaClasse = f.MioOggetto
    Chi non cerca trova.

  3. #3
    Grazie per la tempestiva risposta.
    Provo subito ad applicare i vostri consigli

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.