0

我需要将 4 个不同的图像合二为一,它将在面板中。面板尺寸从 180 到 320 不等。我试着做一个主面板,在她的位置 4,由锚固定..但结果很糟糕

在此处输入图像描述

private void Form1_Load(object sender, EventArgs e)
{
    Panel main_panel = new Panel();
    main_panel.BackColor = Color.Azure;
    Panel panel_top_left = new Panel();
    Panel panel_top_right = new Panel();
    Panel panel_bottom_left = new Panel();
    Panel panel_bottom_right = new Panel();

    Bitmap btm_msg_panel_top_left = new Bitmap(Properties.Resources.blue_t_l);
    panel_top_left.BackgroundImage = btm_msg_panel_top_left;
    Bitmap btm_msg_panel_top_right = new Bitmap(Properties.Resources.blue_t_r);
    panel_top_right.BackgroundImage = btm_msg_panel_top_right;
    Bitmap btm_msg_panel_bottom_left = new Bitmap(Properties.Resources.blue_b_l);
    panel_bottom_left.BackgroundImage = btm_msg_panel_bottom_left;
    Bitmap btm_msg_panel_bottom_right = new Bitmap(Properties.Resources.blue_b_r);
    panel_bottom_right.BackgroundImage = btm_msg_panel_bottom_right;

    main_panel.Anchor = AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Bottom;
    panel_top_left.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
    panel_top_right.Anchor = AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left;
    panel_bottom_left.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
    panel_bottom_right.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;

    main_panel.Controls.Add(panel_top_left);
    main_panel.Controls.Add(panel_top_right);
    main_panel.Controls.Add(panel_bottom_left);
    main_panel.Controls.Add(panel_bottom_right);

    panel1.Controls.Add(main_panel);
}

这是4张图片的来源

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

我试着让他们像这样

在此处输入图像描述

4

1 回答 1

0

在此处输入图像描述

我只是使用tableLayoutPanel而不是Panel我希望它会对你有所帮助。
代码如下。

 public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        TableLayoutPanel myTable = new TableLayoutPanel();
        myTable.Location = new Point(0, 0);
        myTable.Size = new Size(506, 417);
        myTable.AutoSize = true;
        myTable.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
        myTable.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.AddRows;
        myTable.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
        this.Controls.Add(myTable);

        Panel panel1 = new Panel();
        Panel panel2 = new Panel();
        Panel panel3 = new Panel();
        Panel panel4 = new Panel();

        panel1.BackColor = Color.Red;          
        panel2.BackColor = Color.Black;           
        panel3.BackColor = Color.Blue;
        panel4.BackColor = Color.Yellow;

        myTable.Controls.Add(panel1, 0, 0);
        myTable.Controls.Add(panel2, 0, 1);
        myTable.Controls.Add(panel3, 0, 2);
        myTable.Controls.Add(panel4, 0, 3);
    }
}
于 2013-09-13T12:53:50.920 回答