Oppure

Loading
20/06/20 16:40
gnapolitano@teletu.it
Ho un form (frmAperturaPratica),che da un buttone apre un altro form (frmHelpEnti) e dal quale seleziono una delle opzioni presenti in una list box.
La voce selezionata viene poi acquisita dal primo form (frmAperturaPratica) nel seguente modo:
     frmAperturaPratica.ente.Text = ListBox1.SelectedItem.substring(0, 1)
     frmAperturaPratica.ente_desc.Text = ListBox1.SelectedItem.substring(2)
     ecc.

Il probema ora è che devo richiamare frmHelpEnti anche da un altro form : frmChiusuraPratica,ma non so come sostituire i riferimenti "frmAperturaPratica.ente.Text = ListBox1.SelectedItem.substring(0, 1)" con "frmChiusuraPratica.ente.text ecc.".

Mi aiutate,considerando che ho limitate conoscenze di vb net?

Grazie comunque.
Ultima modifica effettuata da gnapolitano@teletu.it 20/06/20 16:45
20/06/20 18:06
Carlo
Postato originariamente da gnapolitano@teletu.it:

Il probema ora è che devo richiamare frmHelpEnti anche da un altro form : frmChiusuraPratica,ma non so come sostituire i riferimenti "frmAperturaPratica.ente.Text = ListBox1.SelectedItem.substring(0, 1)" con "frmChiusuraPratica.ente.text ecc.".

Mi aiutate,considerando che ho limitate conoscenze di vb net?

Grazie comunque.


In che form sta ListBox1? se sta in frmHelpEnti lo devi aggiungere prima di listBox1

frmChiusuraPratica.ente.Text = frmHelpEnti.ListBox1.SelectedItem.substring(0, 1)
Ultima modifica effettuata da Carlo 20/06/20 18:07
in programmazione tutto è permesso
20/06/20 19:10
gnapolitano@teletu.it
Grazie,Carlo.
ListBox1 sta in frmHelpEnti, che è il form attivo.
Penso però di aver risolto:
Module Module1
    Dim nomeForm As String
    Public Property FormName() As String
        Get
            Return nomeForm
        End Get
        Set(ByVal Value As String)
            nomeForm = Value
        End Set
    End Property
End Module


Poi,sia in frmAperturaPratica che in frmChiusuraPratica ,nell'evento load trasferisco il nome del form chiamante:
        FormName = sender.name


Infine,in frmHelpEnti ho scritto :
    Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        If FormName = "frmAperturaPratica" Then
            frmAperturaPratica.TextBox1.Text = ListBox1.SelectedItem
ecc.
        ElseIf FormName = "frmChiusuraPratica" Then
            frmChiusuraPratica.TextBox2.Text = ListBox1.SelectedItem
ecc.
        End If
    End Sub



Forse sarà possibile semplificare, ma funziona.
Grazie comunque per il tuo intervento.
21/06/20 8:58
Carlo
Dal codice mi sembra di aver capito che se frmHelpEnti, lo hai aperto da frmAperturaPratica, vuoi che al cambio di selezione su Listbox1, venga aggiornata la textbox1 che sta su frmAperturaPratica. Se invece frmHelpEnti, lo hai aperto da frmChiusuraPratica, vuoi aggiornare la textbox2 che sta su frmChiusuraPratica.

Va bene quello che hai fatto, ma era sufficiente usare il .Tag
Subito dopo l'apertura di frmHelpEnti da frmAperturaPratica, metti frmHelpEnti.Tag = 1
Subito dopo l'apertura di frmHelpEnti da frmChiusuraPratica, metti frmHelpEnti.Tag = 2

gestirei anche la chiusura del form frmAperturaPratica

Private Sub frmAperturaPratica _FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    frmHelpEnti.Tag = 0
End Sub


e la chiusura del form frmChiusuraPratica

Private Sub frmChiusuraPratica _FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
    frmHelpEnti.Tag = 0
End Sub



poi come già hai fatto in frmHelpEnti scrivi:

Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
        If frmHelpEnti.Tag = 1 Then
            frmAperturaPratica.TextBox1.Text = ListBox1.SelectedItem
ecc.
        ElseIf frmHelpEnti.Tag = 2 Then
            frmChiusuraPratica.TextBox2.Text = ListBox1.SelectedItem
ecc.
        ElseIf frmHelpEnti.Tag = 0 Then
            msgbox("nessun form pratica aperto")

        End If
End Sub


Nel .Tag puoi mettere anche il nome del form o quello che vuoi
Anche se procedi diversamente e non ho perfettamente capito la sequenza dell'apertura dei form, ricorda che nel tag puoi depositare info utili come fosse una variabile pubblica globale.
Il Tag è una proprietà presente su tutti gli strumenti, non solo nel Form.
Ultima modifica effettuata da Carlo 21/06/20 20:10
in programmazione tutto è permesso
21/06/20 17:23
gnapolitano@teletu.it
La tua soluzione è ottima.
La sfrutterò certamente in qualche altra occasione.
Pensare che utilizzavo spesso tag in Access!
Molte grazie,Carlo.