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