【问题标题】:User Control c# Add Dynamically用户控件 c# 动态添加
【发布时间】:2012-12-10 20:55:10
【问题描述】:

我在我的代码中动态创建了一个用户控件

UserControl myobject = new UserControl();

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

picturebox.Controls.Add(myobject);

我的图片框的背景图像消失了。

为什么?

注意:但是可以看到按钮。我也想看到图片框

【问题讨论】:

    标签: c# controls picturebox


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 这对我有用,谢谢 :) 是的,我有一个不同的名称,“UserControlDisplay”。我只是想让我的问题简单=)
    • 我控制每一秒:读取数据库,清除图片框控件而不是再次添加控件。这是为了更新实际上是基本地图的图片框。如果我清除面板,地图将消失并再次出现。这就是为什么我曾经向图片框添加删除控件
    【解决方案2】:

    试试这个:

    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);
    

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 你的意思是-> mypanel.control.add(myObject);比说 picturebox.control.add(mypanel)
      • 我控制每一秒:读取数据库,清除图片框控件而不是再次添加控件。这是为了更新实际上是基本地图的图片框。如果我清除面板,地图将消失并再次出现。这就是为什么我过去常常在图片框中添加删除控件——
      猜你喜欢
      • 2017-01-06
      • 2012-02-11
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多