Redimensionnement Contrôles à l'exécution
-
22-09-2019 - |
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
La solution
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