Cambiano le parole chiave e la sintassi ma, in questi frangenti, ciò che si fa in C# si fa in VB.NET e viceversa: i concetti della OOP sono gli stessi.
Il problema si può risolvere in tanti modi: dipende da cosa ti serve disporre della variabile che desideri passare da un form ad un altro.
Prendendo in esame il secondo form, potresti dotarlo di un campo pubblico di tipo stringa e valorizzarlo prima di chiamare ShowDialog, anzi potresti addirittura creare un metodo nuovo nella classe del secondo form che si occupi di prendere il valore della variabile pubblica e utilizzarlo per lo scopo prefissato e, solo dopo il corretto svolgimento delle operazioni, visualizzare il form con ShowDialog.
Un esempio:
codice:
public class MySecondForm : System.Windows.Forms.Form
{
public string dummyString = "";
public void ShowMe()
{
dummyTextBox.Text = dummyString;
this.ShowDialog();
}
}
In questo modo, la variabile dummyString può essere inizializzata da un metodo esterno, magari nella classe del primo form (che vedremo dopo) prima di richiamare il nuovo metodo ShowMe che non fa altro che copiare la stringa nella variabile all'interno di una casella di testo e, successivamente, visualizzare il form modale attraverso ShowDialog.
Nella classe del primo form, quello chiamante, l'evento di gestione del clic sul pulsante che si occupa di valorizzare la variabile e richiamare il secondo form sarà simile al seguente:
codice:
public class MyFirstForm : System.Windows.Forms.Form
{
private void showButton_Click(object sender, System.EventArgs e)
{
MySecondForm secondForm = new MySecondForm();
secondForm.dummyString = "Valore da visualizzare";
secondForm.ShowMe();
}
}
Viene creata un'istanza del secondo form; la variabile pubblica (il campo) dell'istanza viene valorizzata e, successivamente, si richiama il metodo ShowMe che provvede a fare quanto abbiamo illustrato prima.
Alternativamente, si potrebbe evitare l'uso della variabile e passare direttamente il dato come parametro di ShowMe.
Ovviamente, questo discorso può essere applicato, a livello teorico, concettuale e pratico (traducendo la sintassi) anche a VB.NET.
Ciao!