首页 新闻 搜索 专区 学院

关于用户控件的显示

0
悬赏园豆:15 [已解决问题] 解决于 2011-10-17 17:01

现有主窗体MainForm,用户控件两个,分别是UserControl1和UserControl2

在MainForm窗体的加载事件中加载UserControl1

在UserControl1中有个按钮 按钮点击事件中写:new MainForm().Controls.clear();

                                                 new MainForm().Controls.Add(new UserControl2());

在主窗体上显示的仍然是UserControl1,求解释,并怎么做才能达到我想要的那个结果?

王元勋的主页 王元勋 | 菜鸟二级 | 园豆:413
提问于:2011-10-17 16:21
< >
分享
最佳答案
0

在UserControl1中的按钮事件中new MainForm(),这是重新实例化了一个MainForm窗体,你在这个新的窗体中添加控件肯定是看不到的。你需要在UserControl1中找到主窗体MainForm而不是new。找到的方法可以有很多种的,比如可以实例化UserControl1的时候通过构造函数把MainForm传进去。

收获园豆:10
LCM | 大侠五级 |园豆:6876 | 2011-10-17 16:24
其他回答(2)
0

你先看看那个按钮的Parent是谁?然后再看看按钮的Parent的Parent是谁。(不知道这个思路行不行得通)。

这样你不就把这个按钮也清除了么?

顾晓北 | 园豆:10794 (专家六级) | 2011-10-17 16:28
0

class UserControl1{
  button_click(){
    var form = this.Parent;
    form.Controls.Clear();
    form.Controls.Add(new UserControls2());
  }
}

收获园豆:5
laaaaaa | 园豆:241 (菜鸟二级) | 2011-10-17 16:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册