0

例如。我的代码是

void abc(usercontrolclass ucc)
{
   this.panel.Controls.Add(ucc);
}

void def()
{
  usercontrolclass ucc1 = this.panel.Controls.GetChildUserControl(ucc);

}

注意“GetChildUserControl”不是一个有效的函数,我需要的是一个可以用来获取 ucc 的方法或函数。

4

2 回答 2

2

1 - 设置用户控件tag属性。

2 - 将用户控件添加到其父级。

Tag3 -通过迭代从父级获取其属性的用户控制Control.Controls

你的代码应该是这样的:

void AddControl(UserControl control, int id)
{
    control.Tag = id;
    this.panel.Controls.Add(control);
}

UserControl GetControl(int id)
{
    foreach (Control control in this.panel.Controls)
    {
        if (id == (int) control.Tag)
            return (UserControl) control;
    }
    return null;
}

// or using LINQ
UserControl GetControl(int id)
{
    return Controls.Cast<UserControl>()
                   .FirstOrDefault(control => id == (int) control.Tag);
}
于 2012-07-31T06:25:06.557 回答
0

用户控件也“只是”一个控件,因此它具有带有子控件的 Controls 属性。用它。

这里这里

于 2012-07-31T06:18:11.793 回答