winforms 如何将按钮动态添加到分组框中?

agyaoht7  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(196)

我试图在groupbox中动态添加一个按钮,但是这个按钮在groupbox工具后面,不能被看到或者不能被点击。我需要我的按钮在groupbox中被看到并且可以被点击。下面是我的代码:

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

        private void Form1_Load(object sender, EventArgs e)
        {           
            GroupBox grp = new GroupBox();
            grp.Top = 600;
            grp.Left = 0;
            grp.Text = "Kontroller";
            grp.Size = new Size(600, 400);
            //grp.BackgroundImage = Properties.Resources.hogwartscastle;
            //grp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
            grp.FlatStyle = FlatStyle.Flat;
            this.Controls.Add(grp);

            Button btn2 = new Button();
            btn2.Size = new Size(40, 40);
            btn2.Top = 580;
            btn2.Left = 0;
            btn2.Parent = grp;
            btn2.BackgroundImage = Image.FromFile(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\DownArrow.png");
            btn2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
            grp.Controls.Add(btn2);
            this.Controls.Add(btn2);

        }
    }
}

下面是截图:

h22fl7wq

h22fl7wq1#

首先,GroupBox只有400像素高,但Button的顶部位于y位置580。因此,按钮在那里,但它是不可见的。因此,要么使分组框更高,要么更改btn2.Top。此外,您还需要使用以下代码为btn2创建Click事件处理程序:btn2.Click += Btn2_Click然后定义Btn2_Click函数。

Edit:正如Reza指出的,您还需要删除this.Controls.Add(btn2);行,因为这将从组框中删除按钮。

相关问题