0

こんにちは私はフォーム上のパネルに複数のボタンを追加しようとしましたが、代わりにそれらを上下に配置しました。次の関数を使用しています。コード:

    private void CreatBtn()
    {
        Point[] p = new Point[6];
        string log = "";
       Form2 frm2 = new Form2();

        Button[] btn = new Button[6];
        for (int i = 0; i < btn.GetLength(0); i++)
        {
                btn[i] = new Button();
                btn[i].Height = 65;
                btn[i].Width = 80;

                p[i] = new Point();
                p[i].X = i * 83;

                p[i].Y =0;

                log +=p.ToString() +"\n";
                btn[i].PointToClient(p[i]);
                btn[i].Show();         
        }

        panel1.Controls.AddRange(btn);

    }
4

2 に答える 2

2

Leftボタンに値を追加する

btn[i] = new Button();
btn[i].Height = 65;
btn[i].Width = 80;
btn[i].Left = i * 83; //Now they'll be next to each other.

の使用を検討することもできますFlowLayoutPanel

于 2012-04-21T14:38:54.123 に答える
1

パネルでflowLayoutPanelを使用しますが、ボタンが最後に到達するまで隣り合って、新しいrawを作成します。

 Point[] p = new Point[6];
        string log = "";


        Button[] btn = new Button[6];
        for (int i = 0; i < btn.GetLength(0); i++)
        {
            btn[i] = new Button();
            btn[i].Height = 65;
            btn[i].Width = 80;

            p[i] = new Point();
            p[i].X = i * 83;

            p[i].Y = 0;

            log += p.ToString() + "\n";
            btn[i].PointToClient(p[i]);
            btn[i].Show();
        }

        FlowLayoutPanel pan = new FlowLayoutPanel();
        pan.Width=500;//width of all buttons
        pan.Height = 100;
        pan.Controls.AddRange(btn);

        panel1.Controls.Add(pan);
于 2012-04-21T14:39:56.430 に答える