【问题标题】:How to change size of panel control on resize of parent form如何在调整父窗体大小时更改面板控件的大小
【发布时间】:2013-11-09 10:41:16
【问题描述】:

我正在使用此代码为maximizenormal state 更改panel 控件的大小,它工作正常,但是当用户使用此代码时,我不知道如何根据我的背景图像重新调整面板大小将重新调整除最小化、最大化和正常状态之外的表单大小,即使用鼠标。我该如何使用一些计算代码或任何其他方式来做到这一点?

private void ParentHome_ClientSizeChanged(object sender, EventArgs e)
{
    if (this.WindowState == FormWindowState.Maximized)
    {
        this.Panel1.Size = new System.Drawing.Size(227, 324);
        this.Panel1.Location = new System.Drawing.Point(69, 223);
    }
    else if (this.WindowState == FormWindowState.Normal)
    {
        this.Panel1.Size = new System.Drawing.Size(198, 289);
        this.Panel1.Location = new System.Drawing.Point(60, 193);
    }
}

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    您不需要处理任何事件。只需使用Anchor 属性:

    Panel1.Anchor = AnchorStyles.Left | AnchorStyles.Top | 
                    AnchorStyles.Right | AnchorStyles.Bottom;
    

    【讨论】:

    • 我尝试了锚属性,但它不适合我的背景图像,因此使用了此事件,此代码用于背景图像拉伸foreach (Control ctl in this.Controls) { if (ctl is MdiClient) { ctl.BackgroundImage = Properties.Resources.bg; this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; break; } } 调整表单大小如何更改面板尺寸
    • @Durga 您能否发布一些屏幕截图以显示使用 Anchor 时它如何不适合您的 BackgroundImage?因为如果 Anchor 对您不起作用,您自己调整面板的大小也对您不起作用。其实Anchor叫做自动调整大小和定位**。
    • Stretch 使用乘数,Anchor 没有。
    • @HansPassant 我什至不明白用户到底想拉伸什么,根据问题标题,应该使用正确的锚设置来​​调整大小。顺便说一句,multiplier 是什么意思?
    • 我添加了显示正常状态(左)和调整大小状态(右)的图像,dat 面板超出了背景图像中的橙色框
    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 2016-07-07
    • 2011-06-25
    • 1970-01-01
    • 2013-04-30
    • 2012-12-02
    • 2011-10-01
    相关资源
    最近更新 更多