Question

Quelqu'un sait-il d'un exemple de code autour de la pose partout qui me permettra de redimensionner une picturebox lors de l'exécution lorsque le curseur de la souris est draging le bord inférieur droit du contrôle? Toute aide à tous sera apprécié.

Merci

Était-ce utile?

Autres conseils

Vous pouvez utiliser Utilisez cette « maison » classe. Pour un fonctionnement correct, vous avez shuld un conteneur et un élément Resizer à l'intérieur, comme une image mince travaillant comme une bordure de redimensionnement. Le controlToResize est le conteneur lui-même. Vous pouvez mettre tout ce que vous voulez à l'intérieur du contrôle. Exemple:

ControlResizer.Init(myPictureBox, myTableLayoutPanel, ControlResizer.Direction.Vertical, Cursors.SizeNS);

Voici la classe.

class ControlResizer
{
    public enum Direction
    {
        Horizontal,
        Vertical
    }

    public static void Init(Control resizer, Control controlToResize, Direction direction, Cursor cursor)
    {
        bool dragging = false;
        Point dragStart = Point.Empty;
        int maxBound;
        int minBound;

        resizer.MouseHover += delegate(object sender, EventArgs e)
        {
            resizer.Cursor = cursor;
        };

        resizer.MouseDown += delegate(object sender, MouseEventArgs e)
        {
            dragging = true;
            dragStart = new Point(e.X, e.Y);
            resizer.Capture = true;
        };

        resizer.MouseUp += delegate(object sender, MouseEventArgs e)
        {
            dragging = false;
            resizer.Capture = false;
        };

        resizer.MouseMove += delegate(object sender, MouseEventArgs e)
        {
            if (dragging)
            {
                if (direction == Direction.Vertical)
                {
                    minBound = resizer.Height;
                    maxBound = controlToResize.Parent.Height - controlToResize.Top - 20;
                    controlToResize.Height = Math.Min(maxBound , Math.Max(minBound, controlToResize.Height + (e.Y - dragStart.Y)) );
                }
                if (direction == Direction.Horizontal)
                {
                    minBound = resizer.Width;
                    maxBound = controlToResize.Parent.Width - controlToResize.Left - 20;
                    controlToResize.Width = Math.Min(maxBound, Math.Max(minBound, controlToResize.Width + (e.X - dragStart.X)));
                }
            }
        };
    }
}

avec l'utilisation

  

ControlMoverOrResizer

cet article que vous pouvez faire le contrôle mobile et redimensionnable dans le temps d'exécution juste avec une ligne de code! :) exemple:

ControlMoverOrResizer.Init(button1);   

et maintenant Button1 est un contrôle mobile et redimensionnable!

Essayez ce lien de CP. Vous pouvez l'utiliser comme référence. Le code est pour les débutants, je pense. http://www.codeproject.com/Tips/743923/Csharp -automatiquement-Resize-Controls-Runtime

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top