簡體   English   中英

調整控件的大小在運行時

[英]Resizing Controls At runtime

有沒有人知道任何放置在任何地方的示例代碼,當鼠標光標拖動控件的右下邊緣時,我可以在運行時調整圖片框的大小? 任何幫助都將不勝感激。

謝謝

您可以使用此“自制”課程。 為了正常運行,你可以在其中放置一個容器和一個resizer元素,就像一個用作調整大小邊框的瘦圖像。 controlToResize是容器本身。 你可以把你想要的一切都放在控制之內。 例:

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

這是班級。

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)));
                }
            }
        };
    }
}

使用

ControlMoverOrResizer

本文中,您可以使用一行代碼在運行時進行可移動和可調整大小的控制! :)示例:

ControlMoverOrResizer.Init(button1);   

現在button1是一個可移動且可調整大小的控件!

從CP嘗試此鏈接。 您可以將它用作參考。 我認為代碼適合初學者。 http://www.codeproject.com/Tips/743923/Csharp-Automatically-Resize-Controls-Runtime

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM