是否可以在具有Resizer Frame DesignTime的运行时控件(按钮,图像)中通过用户创建



是否可以在具有Resizer Frame DesignTime的运行时控件(按钮,图像)中通过用户创建?控件可以像设计时间一样调整大小。不要从设计师中隐藏框架。

您可以基于要调整大小(继承)并使其可重大的原始控件创建新控件。

看一下:

用户如何在Winforms中的运行时调整控件

代码:(从上面的链接)

class SizeablePictureBox : PictureBox {
    public SizeablePictureBox() {
        this.ResizeRedraw = true;
    }
    protected override void OnPaint(PaintEventArgs e) {
        base.OnPaint(e);
        var rc = new Rectangle(this.ClientSize.Width - grab, this.ClientSize.Height - grab, grab, grab);
        ControlPaint.DrawSizeGrip(e.Graphics, this.BackColor, rc); 
    }
    protected override void WndProc(ref Message m) {
        base.WndProc(ref m);
        if (m.Msg == 0x84) {  // Trap WM_NCHITTEST
            var pos = this.PointToClient(new Point(m.LParam.ToInt32() & 0xffff, m.LParam.ToInt32() >> 16));
            if (pos.X >= this.ClientSize.Width - grab && pos.Y >= this.ClientSize.Height - grab)
                m.Result = new IntPtr(17);  // HT_BOTTOMRIGHT
        }
    }
    private const int grab = 16;
}

相关内容

  • 没有找到相关文章

最新更新