C# 如何在调整父窗体的大小时更改面板控件的大小

C# 如何在调整父窗体的大小时更改面板控件的大小,c#,winforms,C#,Winforms,我正在使用此代码更改面板控件的大小,用于最大化和正常状态,它工作正常,但当用户将重新调整窗体大小而不是最小化、最大化和正常状态(即使用鼠标)时,我不知道如何根据我的背景图像重新调整面板大小。如何使用一些计算代码或任何其他方法来实现这一点 private void ParentHome_ClientSizeChanged(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Maximized)

我正在使用此代码更改
面板
控件的大小,用于
最大化
正常状态
,它工作正常,但当用户将重新调整窗体大小而不是最小化、最大化和正常状态(即使用鼠标)时,我不知道如何根据我的背景图像重新调整面板大小。如何使用一些计算代码或任何其他方法来实现这一点

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

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

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

我尝试了anchor属性,但它不适合我的背景图像,因此使用了此事件,我正在使用此代码进行背景图像拉伸
foreach(this.Controls中的控件ctl){if(ctl是MdiClient){ctl.BackgroundImage=Properties.Resources.bg;this.BackgroundImageLayout=System.Windows.Forms.ImageLayout.Stretch;break;}
调整窗体大小时如何更改面板size@Durga你能发布一些屏幕截图来说明它在使用Anchor时如何不适合你的背景图像吗?因为如果Anchor不适合你,它也不能通过自己调整面板的大小来工作。事实上,Anchor被称为自动调整大小和定位**。Stretch使用倍增,锚定没有。@HansPassant我甚至不知道用户到底想要拉伸什么,根据问题标题,调整大小应该使用正确的锚定设置。顺便问一下,你所说的倍增是什么意思?我添加了显示正常状态(左)和调整大小状态(右)的图像,dat面板在背景图像中的dat橙色框外