如何将按钮放置在表单末尾,但当AutoScroll=true时

本文关键字:但当 AutoScroll true 表单 按钮 | 更新日期: 2023-09-27 17:59:02

我有多个GroupBox,这就是为什么我将AutoScroll设置为true。我在Form_Load中创建所有控件。如何在所有GroupBox之后放置一个按钮?

我创建GroupBoxes:的代码

 for (int i = 0; i < 10; i++)
            {
                GroupBox gb = new GroupBox();
                gb.Name = "GroupBox" + (i + 1);
                gb.Size = new Size(500, 200);
                gb.Location = new Point(40, loc);
                gb.BackColor = System.Drawing.Color.Aquamarine;
                Label q_text = new Label(); // текст питання
                q_text.Name = "label" + (i + 1);
                q_text.Text = "Питання" + (i + 1);
                q_text.Font = new Font("Aria", 10, FontStyle.Bold);
                q_text.Location = new Point(10, 10);
                gb.Controls.Add(q_text);
                int iter = q_text.Location.Y + 30;
                if (i <= 5)
                {
                    foreach (string key in questions[i].answers.Keys)
                    {
                        RadioButton rb = new RadioButton();
                        rb.Text = key;
                        rb.Size = new Size(120, 25);
                        rb.Location = new Point(q_text.Location.X + 10, iter);
                        iter += 30;
                        gb.Controls.Add(rb);
                    }
                }else
                    if (i > 5)
                    {
                        foreach (string key in questions[i].answers.Keys)
                        {
                            CheckBox rb = new CheckBox();
                            rb.Text = key;
                            rb.Size = new Size(120, 25);
                            rb.Location = new Point(q_text.Location.X + 10, iter);
                            iter += 30;
                            gb.Controls.Add(rb);
                        }
                    }                
                this.Controls.Add(gb);
                loc += 200;

如何将按钮放置在表单末尾,但当AutoScroll=true时

将所有可滚动的组框放在一个面板中,该面板设置为AutoScroll=true。在这个面板下面是另一个包含固定按钮的面板。此面板停靠在底部。

由于使用的是loc变量,因此可以执行以下操作:

btnMyButton.Locaction= new Point(40, loc);

不管怎样,如果你想动态地找到最后一个分组框的位置,试试这个:

double leftPos=0,topPos=0;
foreach(Control c in Forms.Controls)
{
    if(c.Name=="GroupBox")
    {
        if(c.Left>leftPos)
            leftPos=c.Left;
        if(c.Top>topPos)
            topPos=c.Top;
    }
}
相关文章: