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

    [VB.NET 2010]Gestire controllo da un'altra form

    Ciao ragazzi.

    Ho la form frmMain che chiama una seconda form frmArticoli che chiama a sua volta una terza form frmUnitaMisura.
    Ho l'esigenza di modificare da frmUnitaMisura una textbox presente in frmArticoli a seconda di ciò che viene fatto appunto sulla form frmUnitaMisura.

    Le chiamate alle form le faccio in questo modo:
    Da frmMain:

    codice:
    Dim formArticoli As New frmArticoli
    formArticoli.show()
    Da frmArticoli:
    codice:
    frmUnitaMisura.Show()
    E dalla form frmUnitaMisura provo a cambiare la textbox presente in frmArticoli in questo modo:

    codice:
    formArticoli.TextBox1.Text = "nuovo testo"
    Ma nella textbox non viene visualizzato nulla.
    Mi sembra chiaro che la textbox che sto modificando non sia nella istanza della form corretta, perchè se faccio:
    codice:
    formArticoli.TextBox1.Text = "Nuovo testo" 
    MsgBox(formArticoli.TextBox1.Text)
    Ottengo un messaggio che dice appunto "Nuovo testo" ma la TextBox1 rimane vuota.
    Come posso fare?

    Grazie!
    Non piangere per ciò che hai sbagliato ma per quello che non hai fatto per paura di sbagliare.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Devo ancora capire perchè crei un'istanza della form prima di visualizzarla.
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Originariamente inviato da Pirelli72
    Devo ancora capire perchè crei un'istanza della form prima di visualizzarla.
    Erano i miei tentativi di far funzionare la cosa.

    Con un semplice NomeForm.show per aprire la form e un NomeForm.TextBox.Text per cambiare il contenuto della textbox di un'altra form non ottenevo quel che volevo, quindi stavo provando altre strade.
    Non piangere per ciò che hai sbagliato ma per quello che non hai fatto per paura di sbagliare.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Originariamente inviato da Gianluca Frati
    Erano i miei tentativi di far funzionare la cosa.

    Con un semplice NomeForm.show per aprire la form e un NomeForm.TextBox.Text per cambiare il contenuto della textbox di un'altra form non ottenevo quel che volevo, quindi stavo provando altre strade.
    Sinceramente la cosa funziona benissimo.
    Ho provato ora il codice senza istanziare la Form e la scritta passa nella TextBox della Form formArticoli.

    Ovvero:

    codice:
    Public Class frmUnitaMisura
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            formArticoli.TextBox1.Text = TextBox1.Text
            Me.Close()
        End Sub
    End Class
    Sbagliare è umano, perseverare è diabolico.

  5. #5
    Originariamente inviato da Pirelli72
    Sinceramente la cosa funziona benissimo.
    Ho provato ora il codice senza istanziare la Form e la scritta passa nella TextBox della Form formArticoli.

    Ovvero:

    codice:
    Public Class frmUnitaMisura
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            formArticoli.TextBox1.Text = TextBox1.Text
            Me.Close()
        End Sub
    End Class
    No, non funziona. Provato e riprovato decine di volte.
    Non è che con VB.NET 2010 è cambiato qualcosa nella gestione delle form e passaggio di dati tra le form?
    Non piangere per ciò che hai sbagliato ma per quello che non hai fatto per paura di sbagliare.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Non penso che VB2010 sia il responsabile. Posta tutto il codice che hai scritto, magari ci scappa qualcosa.
    In alternativa prova a passare la stringa come funzione, ovviamente devi modificare il

    codice:
       frmUnitaMisura.Show()
    con un

    codice:
       frmUnitaMisura.ShowDialog()
       textBox1.text= frmUnitaMisura.SendString()
    e poi:

    codice:
    Public Class frmUnitaMisura
        Dim myString As String
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            myString = TextBox1.Text
            Me.Close()
        End Sub
    
        Public Function SendString() As String
            Return myString
        End Function
    End Class
    Sbagliare è umano, perseverare è diabolico.

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.