6
votes

Images mobiles dans le panneau

J'ai un projet en C #, Windowsforms et j'ai créé un panneau contenant une image beaucoup plus gros que son parent.

J'ai tourné panneau.Autoscroll vers true et ce que je veux faire est de faire glisser cette imagebox dans panneau au lieu d'attraper un rouleau et de le déplacer.

I.e. Lorsque je saisie une image et déplacez le curseur à gauche et en bas, je voudrais obtenir le même comportement que je le ferai avec les défilements 's .

Comment faire?


0 commentaires

3 Réponses :


7
votes

OK, je l'ai eu. ;-) Si quelqu'un d'autre a le même problème, voici une solution:

    protected Point clickPosition;
    protected Point scrollPosition; 

    private void pictureBox_MouseDown(object sender, MouseEventArgs e)
    {
        this.clickPosition.X = e.X;
        this.clickPosition.Y = e.Y;
    }

    private void pictureBox_MouseMove(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            scrollPosition.X = scrollPosition.X + clickPosition.X - e.X;
            scrollPosition.Y = scrollPosition.Y + clickPosition.Y - e.Y;
            this.panel.AutoScrollPosition = scrollPosition;
        }
    }  


0 commentaires

1
votes

une variante plus petite de la solution HSZ :) xxx


0 commentaires

0
votes

Une solution améliorée de HSZ ', avec la limitation de défilement, mais je n'autorise que le défilement vertical xxx


0 commentaires