Effectivement, c'est pas super propre :D
Il vaut mieux faire un
public partial class Form1 : Form
{
private string _data = "Hello Form1"; // ou autre
public string Data
{
get { return _data; }
set { _data = value; }
}
// ...
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
// ici il faut que tu récupère ton Form1 (le Parent, ou le MdiParent de Form2 par exemple)
Form1 frm = (Form1)this.Parent;
MessageBox.Show(frm.Data);
}
}
Comme ça si tu ne veux pas que Form2 puisse définir la donnée de _data (ou de la valeur objet si c'est un objet qui est concerné), tu peux faire
public partial class Form1 : Form
{
private string _data = "Hello Form1"; // ou autre
public string Data
{
get { return _data; }
private set { _data = value; }
}
// ...
}
et ta variable passe en lecture seule pour les objets externes à Form1