Pas besoin que les Form se connaissent, ce serait plutôt à éviter.
Comme Form2 est affichée en ShowDialog depuis Form1, le plus simple consiste à ajouter une propriété sur Form2 pour récupérer l'information saisie par l'utilisateur. De la même façon que l'on récupère un dossier avec un FolderBrowserDialog et que l'on obtient un fichier pour l'enregister avec SaveFileDialog
Donc sur Form2 tu ajoutes la propriété
public string[] TbUsers { get; }
et pour l'initialiser
1 2 3 4 5 6 7
| private void btAjouter_Click(object sender, EventArgs e)
{
// On découpe et on met sous forme d'un tableau
this.TbUsers = rtbDestinataires.Text.Split(new char[] { ',' }, 100);
this.Close();
} |
Ensuite dans Form1
1 2 3 4 5 6
| using (Form2 frm2 = new Form2())
{
frm2.settxt2(this.TextBox1.Text);
frm2.ShowDialog();
// Ici on utilise frm2.TbUsers pour récupérer l'info
} |
Le bloc using appelle automatiquement la méthode Dispose, même si une exception est levée, c'est donc à privilégier 
Si besoin, il faudra que tu spécifies le DialogResult sur Form2 (si tu as plusieurs boutons Ajouter, Annuler...) afin de pouvoir tester ce que l'utilisateur à fait lorsque tu reprends la main après l'appel à ShowDialog.
Partager