Bouger une form depuis une autre

Ylaosusdiande Messages postés 15 Date d'inscription jeudi 11 avril 2002 Statut Membre Dernière intervention 13 mars 2006 - 19 sept. 2004 à 10:51
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 19 sept. 2004 à 15:12
Salut
je débute et je vois pas comment bouger une form depuis une autre??
pouvez vous m'aidez svp??

merci

6 réponses

cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 99
19 sept. 2004 à 11:56
En se servant des events Mouve & Resize

par exemple pour que Form2 suive les mouvements de Form1 (j'ai mis l'initialisation et l'abonnement aux events dans la méthode associée à l'event Load de Form1 mais tu peux le mettre ailleurs)

Dans Form1:
private Form2 form2;

private void Form1_Load(object sender, System.EventArgs e)
{
form2 = new Form2();
form2.Show();
// positionnement initial
form2.Location = new Point(this.Bounds.X + this.Bounds.Width, this.Bounds.Y);

this.Move += new EventHandler(Form1_MoveAndResize);
this.Resize += new EventHandler(Form1_MoveAndResize);
}

private void Form1_MoveAndResize(object sender, EventArgs e)
{
form2.Location = new Point(this.Bounds.X + this.Bounds.Width, this.Bounds.Y);
}


Cocoricoooooooo !!!!
0
Ylaosusdiande Messages postés 15 Date d'inscription jeudi 11 avril 2002 Statut Membre Dernière intervention 13 mars 2006
19 sept. 2004 à 12:15
merci mais c'est pas ce que je veux,je veux seulement modifier le left et le top d'une form déjà affichée. en vb, c'est comme

form2.top = 10
form2.left = 2

mais en c#, je vois pas le top et le left quand je fais form2. , et quand je la déclare comme ca "form2 = new Form2();" pour avoir le left et le top, c'est comme si je bouje une autre form pas celle affichée.
avez-vous une astuce pour ce problème??

merci
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 99
19 sept. 2004 à 12:24
le principe est le même, Location etant le point supérieur gauche du form

new n'est a faire qu'une fois, pas a chaque fois que tu veux faire qqch sur form2

exemple avec le clic sur un bouton:
// constructeur de la classe Form1
public Form1()
{
InitializeComponent();

form2 = new Form2();
}

// form2 est une instance de la classe Form2
private Form2 form2;

private void button1_Click(object sender, System.EventArgs e)
{
form2.Top = 10;
form2.Left = 2;
}


Cocoricoooooooo !!!!
0
Ylaosusdiande Messages postés 15 Date d'inscription jeudi 11 avril 2002 Statut Membre Dernière intervention 13 mars 2006
19 sept. 2004 à 13:01
le problème, c'est que j'ai 3 forms, deux forms bouge la troisième, alors comment ne faire qu'un seul new, faut faire un dans la form de démarrage pour afficher le form3 et le bouger, et faut faire un autre dans la form2. alors comment??
HiHa
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 99
19 sept. 2004 à 15:11
passe une reference de form3 à form2 (par le constructeur par exemple)

private Form3 m_form3;
public Form2(Form form)
{
m_form3 = form;
}


dans Form1:
Form3 form3 = new Form3();
Form2 form2 = new Form2(form3);


Cocoricoooooooo !!!!
0
cs_coq Messages postés 6351 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 99
19 sept. 2004 à 15:12
hum j'me suis trompé, le constructeur c'est plutot ça :
public Form2(Form3 form)
{
m_form3 = form;
}


Cocoricoooooooo !!!!
0