Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354

    [VB2005] Spostare data tra form

    Buon dì, ho un problema che non riesco a risolvere, ho provato a fare un serch ma poco nulla mi pare.

    Problema: vorrei trasferire il valore di una textbox da un form ad un form figlio.

    In pratica, ho un form figlio dal quale, con un pulsante, mi si apre un form (tipo popup) dove inserire dei dati in textbox. Da qui, con un comando vorrei trasferire questi dati alle textbox presenti nel form figlio.

    Provenendo da VB6 ricordo che era semplice, del tipo:

    codice:
    Form.txtnome.text = txtdenominazione.text
    dove txtdenominazione è la textbox presente nel form(popup) e Form è il nome del form figlio dove risiede la textbox txtnome.

    Ma in VB2005 come si fa? è sicuramente una cosa banale, ma ci sto provando in tutti i modi e non ne vengo fuori.

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    È abbastanza simile: basta che setti lo specificatore di accesso della TextBox della finestra popup su Public e poi funziona allo stesso modo. (o il contrario, dipende da quale form devi accedere a quale).

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Probabilmente, il tuo problema è legato al fatto che pensi ancora VB6, devi pensare al Form come ad un'oggetto, pertanto, devi stare attento a far riferimento alla giusta istanza del Form.
    Per darti maggiori dettagli, e farti capire bene dove sta il problema, sarebbe magari necessario che tu postassi il codice che hai attualmente scritto.

    Facci sapere.
    Jeremy

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Al posto di rendere pubblici membri del Form, io suggerisco sempre di creare una proprietà dedicata: questo consente di aggiungere un ulteriore strato intermedio che separa gli utilizzatori del Form dai possibili cambiamenti all'interfaccia di quest'ultimo e a rendere quindi ancora più indipendente la sua implementazione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    Grazie per i consigli, però mi blocco.

    allora, per andare con un pò di codice che fa solo che bene per capire.

    Form1 (dove ho le celle da riempire con i dati del popup).

    ho messo questo:

    codice:
    Public Sub SettaDati()
            txtProgettista.Text = PopUp.txtNominativo.Text
    End Sub
    e questo lo vado a "attivare" dal PopUp con

    codice:
    If txtNominativo.Text = "" Then
    MsgBox("Bisogna selezionare un Progettista dal DataBase per proseguire.")
    Else
    Form1.SettaDati()
    End If
    ho provato a modificare la proprietà "Modifiers" delle textbox da "Friend" a "Public"...ma non ho ottenuto il risultato sperato.

    so che sarà una cosa banale...ma ho VB6 che mi martella ancora...

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da Folcus
    ho provato a modificare la proprietà "Modifiers" delle textbox da "Friend" a "Public"...ma non ho ottenuto il risultato sperato.
    Cioè? Hai ottenuto un errore? O un comportamento anomalo?
    In pratica, cosa succede?

    Originariamente inviato da Folcus
    so che sarà una cosa banale...ma ho VB6 che mi martella ancora...
    Se provieni da VB6, prima di poter programmare agevolmente con Visual Basic .NET devi approfondire il paradigma della Programmazione orientata agli oggetti, altrimenti sarai sempre in difficoltà.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    niente, non fa nulla, non da errore e non mi va a riempire alcuna textbox.

    come se il comando non esistesse.

    ho provato a bloccare l'esecuzione sul punto dell'assegnazione, ma mi va a dire che (txtProgettista.Text ="")

    Per la progettazione ad oggetti vero, ho sotto mano anche dei manuali sul programma...difatti sono qui sto provando con esempi pratici per capire dove sono i cambiamenti...

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da Folcus
    niente, non fa nulla, non da errore e non mi va a riempire alcuna textbox.
    come se il comando non esistesse.
    Questo perché tu stai richiamando un membro nel modo convenzionalmente errato, facendo riferimento alla classe e non a un'istanza della classe stessa:

    codice:
    txtProgettista.Text = PopUp.txtNominativo.Text
    In VB.NET è previsto un meccanismo per creare automaticamente un'istanza in questi casi, che probabilmente si va aggiungere a quella che hai già inizializzato e mostrato a video, quindi hai due finestre create, una visibile (su cui non avviene alcun effetto) e una no (dove probabilmente imposti correttamente il valore della casella di testo).


    Originariamente inviato da Folcus
    Per la progettazione ad oggetti vero, ho sotto mano anche dei manuali sul programma...difatti sono qui sto provando con esempi pratici per capire dove sono i cambiamenti...
    Andare per tentativi non serve, perché richiede lungo tempo e alla fine, pur ottenendo un risultato, non è detto che le conclusioni tratte siano corrette.

    Nel caso in esame, si deve creare un'istanza del Form, visualizzarla e impostare il valore del controllo, in modo simile a questo (il codice non è testato e serve solo a chiarire l'esempio, ma deve essere ovviamente adattato al caso):

    codice:
    ' Crea l'istanza del Form
    Dim PopupObj As New PopUp()
    
    ' Visualizza il Form
    PopupObj.Show()
    
    ' Leggo/scrivo il valore del controllo
    PopupObj.txtNominativo.Text = "Valore"
    txtProgettista.Text = PopupObj.txtNominativo.Text
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    354
    intanto grazie, poi però l'istanza del PopUp già la creavo

    codice:
    Dim NewPopUp As New PopUp() 'Creo
    NewPopUp.Show() 'Visualizzo
    e fin tutto ok.

    ora ho provato a fare una nuova prova con un progetto exnovo...e ok, funziona. mi copia il dato da textbox a textbox.

    ora però devo capire perchè nel progetto principale, non lo fa.

    non mi ricordo se ho specificato prima che il From1 è un form figlio, ossia ho un contenitore MDI e il form1 è un figlio di questo...mentre il PopUp viene aperto "fuori" dal contenitore MDI.
    questo potrebbe essere un problema vero?

    ora provo nuovamente...


    EDIT istantaneo. Ok, il problema è questo. tra padre e figlio e popup.

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Originariamente inviato da Folcus
    intanto grazie, poi però l'istanza del PopUp già la creavo

    codice:
    Dim NewPopUp As New PopUp() 'Creo
    NewPopUp.Show() 'Visualizzo
    e fin tutto ok.

    Allora la soluzione dovrebbe essere molto semplice:
    codice:
    txtProgettista.Text = NewPopUp.txtNominativo.Text
    Se così non è, allora c'è qualche altro problema nel tuo codice.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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.