将 Button/PictureBox 动态插入 PictureBox

Insert dynamically a Button/PictureBox into a PictureBox

我正在尝试为建筑规划师创建图像映射器。当点击施工图时我想在图像映射器中出现一个按钮或一个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);
}   

它只适用于 Form 但不适用于 PictureBox

因为您已将这个动态创建的按钮添加到表单中 (Controls.Add(b);)。如果你想把它添加到你的 PictureBox 那么你需要改变这个:

Controls.Add(b);

为此:

yourPictureBox.Controls.Add(b);
Controls.Add(b);

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

所以必须在 pictureBox 中添加您的控件

pictureBox1.Controls.Add(b);

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

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

  b.Parent = pictureBox1;