动态将Button / PictureBox插入到PictureBox中

时间:2018-11-29 13:47:16

标签: c# .net winforms dynamically-generated

我正在尝试为建筑规划师创建一个Image Mapper。当单击施工计划时,我想在图像映射器中显示一个按钮或一个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上运行。

3 个答案:

答案 0 :(得分:2)

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

Controls.Add(b);

对此:

yourPictureBox.Controls.Add(b);

答案 1 :(得分:0)

Controls.Add(b);

代码上方,将您的按钮添加到Form控件中,而不是在pictureBox中

因此必须将控件添加到pictureBox内

pictureBox1.Controls.Add(b);

这样,您新创建的控件将被添加到图片框内

答案 2 :(得分:0)

您应该将图片框设为按钮的父级

  b.Parent = pictureBox1;