Problème avec LocationChanged

Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006 - 14 oct. 2005 à 10:29
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006 - 14 oct. 2005 à 15:11
Bonjour, je suis débutant en c# et j'ai un gros gros problème. je m'explique :
je travaille en événementiel, j'ai crée une form2 et en faite dans cette forme je souhaite déplacer la picturebox3 selon la valeur d'une variable. j'ai donc réussi en faisant ainsi :

- j'ai déclaré comme cela ma picturebox:
static public System.Windows.Forms.PictureBox pictureBox3;

- et puis pour déplacer la picturebox3, j'ai utiliser un selon et le locationChanged comme ceci :

switch(var.form2.case1)
{
case 1 :{Form2.pictureBox3.Location = new Point(80,560);}...

le problème est que lorsque je souhaite modifier ma form2, le mot static dans la déclaration s'en va à chaque fois et je dois modifier pleins d'autres choses (enlever le mot clé this ...)
je ne sais pas comment procéder pour remédier à ce problème..

Merci d'avance
Kbitnik

6 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
14 oct. 2005 à 10:40
le static ne sert à rien... le PictureBox appartient à l'instance du formulaire qui le contient...

Sébastien FERRAND
[MVP C#]
0
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006
14 oct. 2005 à 10:45
et comment je peux faire alors pour déplacer ma picturebox3, parce que sans le static ça ne fonctionne pas...
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
14 oct. 2005 à 11:11
hum... je viens de comprendre ton problème...
apparement tu viens de vb6...

en .net (vb et c#), il est nécessaire de créer une instance de ta classe avant d'en manipuler les membres.

donc ca donne :

Form2 f = new Form2();
f.pictureBox3.Location = new Point(80,560);

Je te conseille la lecture d'un livre sur la programmation orientée objet, ou bien un livre sur C#.

Sébastien FERRAND
[MVP C#]
0
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006
14 oct. 2005 à 14:49
j'ai déja essayé cela mais ça ne marche pas et je ne m'y connait absolument pas en programmation objet. dans ce projet je dois utiliser le moins possible la programmation objet. donc je ne trouve pa de solution à part mettre static public ....picturebox3 dans les déclarations et enlever un certains nombre de this mais cela ne me convient pas du tout car je ne peux en aucun cas modifier ma form.
0

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

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
14 oct. 2005 à 15:03
lol...

tu dois utiliser le moins possible de POO...
tu veux un conseil... change de langage... C# est un langage Orienté Objet... c'est à dire qu'il a été conçu pour faire de la POO...

Sébastien FERRAND
[MVP C#]
0
Kbitnik Messages postés 125 Date d'inscription mercredi 15 novembre 2000 Statut Membre Dernière intervention 2 mars 2006
14 oct. 2005 à 15:11
ah bon, c pa grave, jvais quand même essayer en c#. c'est un projet que je dois présenter à un jury, en c# évènementielle mais comme tu dis il y a forcément de la POO. mais en faite j'ai essayé un truc qui ne marche pas non plus, je m'explique :
j'ai crée une classe var (la voisi) :
public class var
{public static void Main()
{
Application.Run(form1);
}
static public Form1 form1 = new Form1();
static public Form2 form2 = new Form2();
}

et dans les déclaration dans les form 1 et 2, je n'ai aucun static juste quelque public. ça marche pour certaines valeurs de variables mais il y a juste un problème c'est pour changer de place ma pictureBox (le locationChanged).
0
Rejoignez-nous