Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    375

    VB.Net richiami controlli form1 da form2

    Forse è una domanda banale ma abituata al vecchio vb6 con il nuovo .net sono un po' spiazzata....

    Come faccio se da un form 'pagamenti' devo assegnare il valore di una casella di testo Txt_ModalitàPagamento ad una casella di testo txt_Pagamento presente sul form (attivo o inattivo) 'clienti' ?

    Una volta bastava un semplice clienti.txt_Pagamento.Text = Txt_ModalitàPagamento.text

    Ma adesso???

    Grazie a tutti.

    Ciao

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    375
    Mi sa che se qualcuno lo sa dovrò aspettare l'anno prossimo prima che mi risponda....



    Che brutta batuta.....

    Ciao buon anno a tutti e spero che con l'anno nuovo porti tante belle cose a tutti voi e anche a me.

  3. #3
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,580
    ciao

    scusa se è passato un anno da quando hai postato la domanda a quando ho risposto"!

    cmq se metti delle strutture property dovresti riuscirci in quanto ora i form sono considerati delle classi

    c'è un0altra soluzione:
    ti crei una variabile pubblica in form2 che valorizzi con il valore della text cosi facendo quando da form1 esegui form2 e la chiudi ottieni il valore

    vedi quale riesci meglio....
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    In VB.NET, ciascun form è rappresentato da una classe; le classi definiscono le caratteristiche e il comportamento del form, dei veri e propri modelli di cui puoi creare istanze, cioè oggetti che realizzano in modo concreto quel modello.

    Per fare un'analogia, è quasi lo stesso legame che c'è tra il progetto di un'automobile e l'automobile stessa, appena uscita dalla fabbrica; il progetto definisce caratteristiche e funzionalità, mentre il prodotto finito costituisce un'istanza, cioè un oggetto direttamente utilizzabile avente le caratteristiche e le funzionalità previste dal modello.

    La premessa è importante per capire che la creazione di un form a livello di classe, cioè di modello, non implica che essa sia direttamente utilizzabile: occorre crearne un'istanza. A differenza di VB6, tuttavia, potresti creare migliaia e migliaia di form identici, tutti della stessa classe, che funzionano esattamente nel modo stabilito dalla classe stessa, senza dover fare "copia e incolla" del codice: senza dubbio un'opportunità irrealizzabile con VB6.

    Tornando al problema, ciascun controllo che posizioni all'interno del tuo form viene inserito nella classe e ne entra a far parte; a seconda della visibilità che attribuisci, il controllo è identificabile da form esterni attraverso il nome e puoi quindi manipolarne le proprietà.

    Supponiamo che tu abbia due classi di form, MainForm e SecondForm, e che tu voglia copiare il contenuto di una TextBox che è posizionata nel primo form all'interno di una casella di testo che si trova nel secondo, dopo aver visualizzato quest'ultimo, magari alla pressione di un pulsante del form principale.

    Nel metodo incaricato di gestire l'evento Click sul pulsante, potresti scrivere un codice simile al seguente:
    codice:
    Dim frm As SecondForm
    frm = New SecondForm()
    frm.SecondTextBox.Text = Me.FirstTextBox.Text
    frm.ShowDialog
    Brevemente, si dichiara una variabile adatta a contenere un riferimento ad un oggetto SecondForm; tale oggetto viene creato attraverso il nome della classe preceduto dalla parola chiave New. In seguito, si imposta la proprietà Text del controllo con nome SecondTextBox sul form secondario in modo che sia identica alla proprietà Text del controllo FirstTextBox presente sull'istanza corrente di MainForm. Infine, richiamando il metodo ShowDialog del form secondario, la finestra viene visualizzata.

    VB.NET e il .NET Framework in se introducono concetti interessanti ma molto vasti...io suggerisco sempre di prendere un libro o di documentarsi su (quasi) tutto prima di iniziare a lavorarci, altrimenti un apprendimento fatto in questo modo sarà inefficace e si cercherà solamente di riprodurre in VB.NET quello che si fa normalmente in VB6, ottenendo solamente un degrado di prestazioni e soprattutto tralasciando tutti i vantaggi che la nuova tecnologia comporta. Credimi!!

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

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

  5. #5
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    ottima spiegazione ,cmq anche io condivido la cosa comprate i manuali che è meglio uno ??? Francesco Balena e andate tranquilli

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    375
    Certo che come spieghi te i professori se lo sognano

    Il fatto è che spesso i manuali non sono cosi' dettagliati come te e danno molte cose per scontate...

    Ad esempio mi riallaccio al tuo esempio form1 ha una casella di testo text1 e un bottone che richiama form2.
    Form2 ha una casella di testo text2.
    Io se dovessi scrivere dalla form2 una parola in text2 e volessi che questa parola fosse riportata in text1 (di form1) alla chiusura di form2 dovrei fare il sguente codice...

    dim frm as form1

    frm = new form1()
    frm.text1.text = me.text2.text
    me.close

    ho capito bene?

    Grazie

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da Rosy23
    Certo che come spieghi te i professori se lo sognano
    Grazie! In realtà, troppo buona...

    Originariamente inviato da Rosy23
    Il fatto è che spesso i manuali non sono cosi' dettagliati come te e danno molte cose per scontate...
    Uhm...in parte è vero, in parte no. Mi spiego meglio: i manuali non trattano ovviamente tutti i casi particolari che possono sopraggiungere quando si sviluppa un'applicazione, però forniscono una serie di nozioni di base.

    Difficilmente avresti trovato la soluzione esatta al problema che hai proposto in questa discussione su un manuale, ma dopo aver appreso i meccanismi fondamentali che governano il framework, come creare e interagire (in senso generico) con i form, allora probabilmente saresti autonomamente arrivata alla soluzione, poichè i manuali tecnici in generale non forniscono la soluzione diretta, ma le conoscenze necessarie per arrivare alla soluzione.

    Poi, posso darti ragione che a volte ci sia bisogno di un aiuto, che il manuale non sia sufficiente, che ci siano delle complessità architetturali tali per cui ci si ritrova a fare domande su questo forum; personalmente, non sto inventando nulla, sto solo riportando qui l'esperienza acquisita attraverso il tempo messo a disposizione da altri che mi hanno aiutato in passato, a cose che ho letto e imparato e così via. Ma veniamo all'argomento della discussione...

    Originariamente inviato da Rosy23
    Ad esempio mi riallaccio al tuo esempio form1 ha una casella di testo text1 e un bottone che richiama form2.
    Form2 ha una casella di testo text2.
    Io se dovessi scrivere dalla form2 una parola in text2 e volessi che questa parola fosse riportata in text1 (di form1) alla chiusura di form2 dovrei fare il sguente codice...
    E' meglio se segui un approccio diverso, cioè dal codice di Form1 copi il valore da Form2:
    codice:
    Dim F2 As Form2
    F2 = New Form2()
    F2.ShowDialog()
    F1.TextBox1.Text = F2.TextBox2.Text
    Non ho verificato il codice (tra l'altro, non uso VB.NET, ma Delphi.NET), tuttavia dovrebbe fare le seguenti cose: innanzitutto, crea un'istanza di Form2 e lo visualizzo attraverso il metodo ShowDialog; fino a quando F2 non viene chiuso, il codice non prosegue; chiudendo F2, il contenuto della TextBox2 di F2 viene copiato nella TextBox1 di F1. Questa porzione di codice può essere inserita nel metodo di gestione dell'evento OnClick su un pulsante apposito di F1 che richiama il form secondario.

    Ovviamente, il codice va interpretato, cioè devi capire il suo significato e adattarlo alla tua esigenza specifica, ma puoi farlo solo se hai un "background", anche minimo, del linguaggio e del framework, altrimenti è una faticaccia.

    Fidati, procurati della documentazione e vedrai che queste cose saranno passeggiate, ammesso che tu segua l'approccio graduale che ti viene proposto dal materiale che trovi.

    Inoltre, non disdegnare eventuali corsi di formazione personalizzati, soprattutto se l'apprendimento ti serve - per così dire - a scopi commerciali. E' un buon investimento.

    Alla prossima, ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    375
    grazie mille!

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.