DanieleG ha scritto:
Grazie a tutti,
rispondo a tutti:
Ho 2 form (il principale e quello che voglio usare come diagnostica)
Sul principale ho creato un menu popup, per aprire il form diagnostica.
Ho provato in 2 modi
direttamente col nome:
frmDiagnostica.showdialog
oppure
Dim myForm as new frmDiagnostica
myForm.showdialog
il timer viene eseguito correttamente ogni 250 msec. e la variabile contiene i dati da visualizzare (ho controllato in debug).
Grazie
Buona giornata a tutti
Daniele G
Nel tuo caso hai messo due form da progettazione, non ne devi creare di nuovi, per caricare Form2 (CB_frmDebug) e renderlo diponibile, nel codice di Form1.vb devi scrivere:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CB_frmDebug.Show()
CB_frmDebug.Visible = False
End Sub
Queste istruzioni scatenano l'evento Load di CB_frmDebug, e lo rende invisibile.
Una volta caricato CB_frmDebug, nel tuo caso non va più chiuso, perché altrimenti non potresti continuare a scriverci da Form1, ma devi gestire la sua visibilità:
' Visibile/Invisibile
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
CB_frmDebug.Visible = Not CB_frmDebug.Visible
End Sub
Se non vuoi ricaricare i valori nel form2, anche l'utente non deve poter chiudere CB_frmDebug ma renderlo invisibile, questo codice va in CB_frmDebug.vb:
' rende invisibile il form2 senza chiuderlo
Private Sub CB_frmDebug_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = True
Me.Visible = False
End Sub
Con questi accorgimenti la tua istruzione: CB_frmDebug.lstDebug.Items.Add(sDati) deve funzionare.
Naturalmente i nomi devono essere corretti.
Ho immaginato uno scenario con un button1 nel Form1 che visualizza/nasconde il form2(CB_frmDebug).
Ma puoi adattare alle tue esigenze.
Se non hai bisogno di mantenere i dati nel Form2, e ti va bene ricaricarli ogni volta, puoi usare CB_frmDebug.Hide() e CB_frmDebug.Show()