Bonjour à tous
Ayant une bonne expérience en VB et nettement moins en VB.Net, je m’accroche pour faire des petites applications en C#
J’ai deux formulaires Form1 et Form2
Dans Form1, je peux agir sur Form2, au travers de frm2 que j’ai défini avec
public Form2 frm2 = new Form2();
Et pas sur les composants de Form2
Par exemple frm2.button1 est refusé, je dois utiliser une routine public qui se trouve dans Form2 et que je lance par frm2.MaRoutine() ;
C’est déjà un début.
Mais pour faire pareil et agir sur Form1 en partant de Form2, là…. J’ai pas trouvé et je ne peux pas croire que cela ne soit pas prévu.
Quelqu’un peut-il me dire comment faire ?
Voici Form1.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
namespace Essai_sur_deux_formilaires
{
public partial class Form1 : Form
{
public Form2 frm2 = new Form2(); // Possible sur Form1, mais pas sur Form2
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// Ces instructions fonctionnent parfaitement
frm2.Show();
frm2.Top = this.Top;
frm2.Left = this.Left + this.Width;
frm2.BackColor = Color.Aqua;
}
private void button1_Click(object sender, EventArgs e)
{
// Là aussi sans problème
frm2.BackColor = Color.Red;
frm2.MaRoutine();
}
}
} |
et voici Form2.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
namespace Essai_sur_deux_formilaires
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//Form1.BackColor = Color.AliceBlue; //N'est pas accepté par l'éditeur
}
private void button2_Click(object sender, EventArgs e)
{
Form1 frm1 = new Form1();
frm1.BackColor = Color.Blue;
// Aucune action visible. Poutant frm1 est bien définit en
//{Essai_sur_deux_formilaires.Form1, Text: Form1}
}
public void MaRoutine()
{
button1.BackColor = Color.Yellow;
button2.BackColor = Color.Green;
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
} |
Partager