Rendendoli Singleton non è una cattiva idea, ma personalmente non preferirei farlo in quel modo. Preferirei passare il riferimento di uno a un altro modulo. Ecco un esempio.
Form1 attiva il Form2 per l'apertura. Form2 ha sovraccaricato il costruttore che prende la forma chiamante come argomento e fornisce il suo riferimento ai membri di Form2. Questo risolve il problema di comunicazione. Ad esempio, ho esposto la proprietà Label come pubblica in Form1 che viene modificata in Form2.
Con questo approccio è possibile effettuare comunicazioni in diversi modi.
Download Link for Sample Project
// tuo Form1
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2(this);
frm.Show();
}
public string LabelText
{
get { return Lbl.Text; }
set { Lbl.Text = value; }
}
}
// tuo Form2
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private Form1 mainForm = null;
public Form2(Form callingForm)
{
mainForm = callingForm as Form1;
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
this.mainForm.LabelText = txtMessage.Text;
}
}
alt text http://demo.ruchitsurati.net/files/frm1.png
alt text http://demo.ruchitsurati.net/files/frm2.png
fonte
2011-01-28 00:29:34
[L'interazione tra forme -? Come modificare un controllo di un modulo da un'altra forma] (https://stackoverflow.com/a/38769212/3110834) –