Bonjour,

mon problème se porte sur le déplacement d'une pictureBox . Je cherche à déplacer cette picturebox plusieurs fois dans ma form.
Donc pour ne pas poluer mon gros projet j'ai testé dans un plus petit. Voici le code que j'ai créé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
public partial class MainForm
    {
 
        bool click;
        int departX = 36;
        int departY = 40;
        [STAThread]
        public static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }
 
        public MainForm()
        {
            //
            // The InitializeComponent() call is required for Windows Forms designer support.
            //
            InitializeComponent();
 
            //
            // TODO: Add constructor code after the InitializeComponent() call.
            //
            Console.WriteLine("Debut");
            this.pictureBox1.Hide();   
        }
 
        void PictureBox1MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            click = true;
            this.pictureBox1.MouseMove +=new MouseEventHandler(mouseMove);
            this.pictureBox1.MouseUp += new MouseEventHandler(mouseUp);
 
        }
        private void mouseUp(object sender, MouseEventArgs e)
        {
            click = false ;
            Console.WriteLine(this.departX);
            Console.WriteLine(this.departY);
        }
        private void mouseMove(object sender, MouseEventArgs e)
        {
 
            if(click)
            {
                this.departX=this.departX + e.X;
                this.departY=this.departY + e.Y;
                Console.WriteLine(e.X);
                Console.WriteLine(e.Y);
                this.pictureBox1.Location = new System.Drawing.Point(this.departX,this.departY);
            }
        }
        void Button1Click(object sender, System.EventArgs e)
        {
            this.pictureBox1.Show();
        }
    }
}
En gros rien de compliquer, juste un clic sur un bouton pour faire apparaître la pictureBox, puis on click sur la picutrebox pour la déplacer (on maintient le clic pour être précis) puis on relache.
Cependant lors du 1er déplacement aucun problème mais lors du second ma picturebox à la tremblote puis au troisième il disparait de l'écran.
Donc j'aurais 2 questions : à quoi cela est du? Et comment faire pour résoudre cela? J'ai essayé pas mal de chose sans succès et je commence à penser que c'est dû à un bug de mousemove.

Merci.