关于用户控件的显示

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

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

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

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

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


红糖糍粑
浏览 484回答 2
2回答

胡子哥哥

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

潇湘沐

你先看看那个按钮的Parent是谁?然后再看看按钮的Parent的Parent是谁。(不知道这个思路行不行得通)。这样你不就把这个按钮也清除了么?
打开App,查看更多内容
随时随地看视频慕课网APP