C# 将按钮/图片盒动态插入图片盒

C# 将按钮/图片盒动态插入图片盒,c#,.net,winforms,dynamically-generated,C#,.net,Winforms,Dynamically Generated,我正在尝试为建筑规划师创建一个图像映射器。单击施工图时,我希望在图像映射器中显示一个按钮或一个PictureBox(它也是一个PictureBox)。我尝试了以下代码: if (e.Button == MouseButtons.Left) { Button b = new Button(); int i = 0; b.Location = new Point(e.X, e.Y); b.Name = "button_" + (i + 1).ToString();

我正在尝试为建筑规划师创建一个图像映射器。单击施工图时,我希望在图像映射器中显示一个按钮或一个
PictureBox
(它也是一个
PictureBox
)。我尝试了以下代码:

if (e.Button == MouseButtons.Left)
{
    Button b = new Button();
    int i = 0;
    b.Location = new Point(e.X, e.Y);
    b.Name = "button_" + (i + 1).ToString();
    b.Text = "Click";
    b.Size = new Size(110, 42);
    b.Font = new Font("MinionPro", 20);
    b.Padding = new Padding(0);
    Controls.Add(b);
}   

它将只在
表单上工作,但在
图片盒上不工作,因为您已将此动态创建的按钮添加到表单中(
控件。添加(b);
)。如果要将其添加到
图片盒
,则需要更改:

Controls.Add(b);
为此:

yourPictureBox.Controls.Add(b);

因为您已将此动态创建的按钮添加到表单中(
Controls.Add(b);
)。如果要将其添加到
图片盒
,则需要更改:

Controls.Add(b);
为此:

yourPictureBox.Controls.Add(b);
以上代码行将您的按钮添加到表单控件,而不是pictureBox中

pictureBox1.Controls.Add(b);
所以必须在pictureBox中添加控件

pictureBox1.Controls.Add(b);
这样,新创建的控件将添加到picturebox中

以上代码行将您的按钮添加到表单控件,而不是pictureBox中

pictureBox1.Controls.Add(b);
所以必须在pictureBox中添加控件

pictureBox1.Controls.Add(b);

这样,新创建的控件将添加到picturebox中

您应该使picturebox成为按钮的父级

  b.Parent = pictureBox1;

您应该使图片框成为按钮的父项

  b.Parent = pictureBox1;