用户控制c#动态添加

时间:2012-12-24 12:15:52

标签: c# controls picturebox

我在代码中动态创建用户控件

UserControl myobject = new UserControl();

myObject包含一个按钮等。 当我将此控件添加到我的图片框

picturebox.Controls.Add(myobject);

我的图片框的backgorund图像消失了。

为什么?

注意:但是可以看到按钮。我也希望看到picturebox

3 个答案:

答案 0 :(得分:4)

设置用户控件的透明basckground颜色。这将使图片框可见:

UserControlDisplay myobject = new UserControlDisplay();
myobject.BackColor = Color.Transparent;
picturebox.Controls.Add(myobject);

BTW我相信你有不同的用户控件名称。是的,正如@samjudson所说,PictureBox不应该以这种方式使用:尝试使用Panel代替背景图像(方法将保持不变 - 使用透明颜色来查看父控件):

panel.BackgroundImage = // your image
UserControlDisplay myobject = new UserControlDisplay();
myobject.BackColor = Color.Transparent;
panel.Controls.Add(myobject);

答案 1 :(得分:1)

PictureBox控件不能用作容器。尝试添加父Panel或类似物,并将PictureBox和自定义控件添加到Panel控件。

答案 2 :(得分:0)

试试这个:

UserControl myobject = new UserControl();
Button but = new Button();
but.BackColor = Color.Gray
pic.BackColor = Color.Green;
myobject.Controls.Add(but);
pic.Visible = true;
pic.Controls.Add(myobject);