日期:2014-05-18  浏览次数:21235 次

动态加载UserControl的问题
一个WinForm 一个LoginUserControl 一个ListUserControl
想法是这样的 Form_Load 的时候 controls.add(LoginUserControl) 
如果登录成功就controls.clear();并且controls.add(ListUserControl)
现在的问题就是登录成功了LoginUserControl确实被clear()掉了 但是ListUserControl没有加进去(没显示)
下面是代码部分
C# code

public Form()
        {
            InitializeComponent();
            s.SatusChange += new SDK.SatusChangedEventHandler(SatusChange);  // 登录对象s注册事件
        }
private void SatusChange(object sender, SDK.SatusChangedEventArgs e)  //登录状态改变
        {
            if (!IsLogon && e.Statu == SDK.Status.Logon)  //bool IsLogon标记是否已经登录
            {
                IsLogon = true;
                this.Controls.Clear();
                this.Controls.Add(ListCtrl);
                ListCtrl.Show();
            }
        }
private void Form_Load(object sender, EventArgs e)
        {
            LogCtrl = new CtrlLogin(s);       //s是传入的登录对象的引用 
            LogCtrl.Dock = DockStyle.Fill;
            ListCtrl = new CtrlList(s);     //login和登录之后显示的list是同一个引用
            ListCtrl.Dock = DockStyle.Fill;
            this.Controls.Add(LogCtrl);//在loginControl里完成登录
        }





------解决方案--------------------
我做了一下,可以实现功能,不知道你的问题处在那里。