在UserControl1中的按钮事件中new MainForm(),这是重新实例化了一个MainForm窗体,你在这个新的窗体中添加控件肯定是看不到的。你需要在UserControl1中找到主窗体MainForm而不是new。找到的方法可以有很多种的,比如可以实例化UserControl1的时候通过构造函数把MainForm传进去。
你先看看那个按钮的Parent是谁?然后再看看按钮的Parent的Parent是谁。(不知道这个思路行不行得通)。
这样你不就把这个按钮也清除了么?
class UserControl1{
button_click(){
var form = this.Parent;
form.Controls.Clear();
form.Controls.Add(new UserControls2());
}
}