Bonjour !

Je fais appel à vos lumières pour un drôle de problème:
je suis en train de faire un mini éditeur d'image pour une appli métier. j'affiche une image haute résolution dans un panel donc autoscroll est à true.
Je peux défiler mon image grâce au scrollbars. bon... comme je veux aussi le faire avec ma souris (comme un drag), j'ai implémenté l'évenement OnMouseMove comme ça:

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
private void pBox_MouseMove(object sender, MouseEventArgs e)
        {
            bool Moving = false;
            if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
            {
                Cursor = Cursors.SizeAll;
                Moving = true;
            }
            else
            {
                Cursor = Cursors.Default;
                Moving = false;
            }
 
            Point ScreenPoint = Control.MousePosition;
            if (e.Button == MouseButtons.Left)
            {
                if (Moving)
                {
                    // delta X
                    int DeltaX = _PaintCoord.X - ScreenPoint.X;
                    if (DeltaX > 0)
                        HorizontalScroll.Value = Math.Min(HorizontalScroll.Maximum, HorizontalScroll.Value + DeltaX);
                    else
                        HorizontalScroll.Value = Math.Max(HorizontalScroll.Minimum, HorizontalScroll.Value + DeltaX);
                    // delta Y
                    int DeltaY = _PaintCoord.Y - ScreenPoint.Y;
                    if (DeltaY > 0)
                        VerticalScroll.Value = Math.Min(VerticalScroll.Maximum, VerticalScroll.Value + DeltaY);
                    else
                        VerticalScroll.Value = Math.Max(VerticalScroll.Minimum, VerticalScroll.Value + DeltaY);
                    Invalidate();
                }
            }
            _PaintCoord = ScreenPoint; // _PaintCoord est membre de ma classe
        }
ça marche relativement bien dans d'autres langage comme Dephi, mais là, lorsque je déplace, j'ai des mouvements désordonnés.
on dirait que VerticalScroll.Value et HorizontalScroll.Value ne s'affectent pas immédiatement, en pas à pas, en tout cas, l'affectation ne passe pas toujours.
bizarre?

si quelqun connait une solution, je suis preneur.

Merci