在 C# 中,可以通过 Panel 控件的 SizeChanged 事件来实现当 Panel 控件的尺寸发生变化时,Panel 内的控件位置相对发生改变的效果。具体实现步骤如下:

  1. 在窗体设计器中选中要实现该效果的 Panel 控件,打开属性窗口,找到 SizeChanged 事件,双击打开事件处理程序。

  2. 在事件处理程序中编写代码,实现 Panel 内控件位置的相对改变。例如,可以使用 foreach 循环遍历 Panel 内的所有控件,并根据 Panel 的新尺寸重新计算控件的位置和大小。

示例代码如下:

private void panel1_SizeChanged(object sender, EventArgs e)
{
    foreach (Control control in panel1.Controls)
    {
        //重新计算控件的位置和大小
        control.Left = control.Left * panel1.Width / panel1.ClientSize.Width;
        control.Top = control.Top * panel1.Height / panel1.ClientSize.Height;
        control.Width = control.Width * panel1.Width / panel1.ClientSize.Width;
        control.Height = control.Height * panel1.Height / panel1.ClientSize.Height;
    }
}

其中,panel1.Size 代表 Panel 控件的当前尺寸,panel1.ClientSize 代表 Panel 控件的客户端区域尺寸(不包括边框),通过计算两者的比例可以实现控件位置的相对改变。


原文地址: https://www.cveoy.top/t/topic/l34A 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录