0

1 つの画像で 4 つの異なる画像を作成する必要があり、それがパネルに表示されます。パネルのサイズは 180 から 320 までさまざまです。メイン パネルを 1 つ作成しようとしましたが、その代わりにアンカーで固定されている 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

ここに画像の説明を入力

Panelの代わりにtableLayoutPanelを使用しているだけです。このためのコードは次のとおりです。

 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 に答える