动态地向用户控件添加控件

Cia*_*ill 5 c# user-controls winforms

我想在事件处理程序(如按钮单击事件)中向用户控件添加控件.

我正在尝试动态添加datagridview查找控件,但我无法使其工作,所以我尝试添加一个带有此代码的按钮:

private void btnCreateNewButton_Click(object sender, EventArgs e)
{
    Button btn = new Button();
    btn.Location = new Point(100, 640);
    btn.Size = new Size(100, 30);
    btn.Text = "Click Me";
    btn.Click += (s, ea) => MessageBox.Show("New button clicked");
    this.Controls.Add(btn);
}
Run Code Online (Sandbox Code Playgroud)

当我单击"创建新按钮"时,不会显示任何按钮.

如果我将完全相同的代码添加到表单而不是用户控件中,则会创建按钮并按预期显示,但在用户控件中没有任何反应.在用户控件中我也试过了

this.Parent.Controls.Add(btn) and
this.ParentForm.Controls.Add(btn) 
Run Code Online (Sandbox Code Playgroud)

但无济于事.

有人有任何想法吗?

谢谢,Ciaran.

Val*_*yev 1

您将按钮置于 100,640 点。请确保您的用户控件可以容纳您的动态按钮。否则,你将看不到它。我使用了你的代码,它对我来说工作得很好,只需确保父窗体和用户控件的大小合适即可。