日期:2014-05-17  浏览次数:20909 次

Panel传值问题
是这样的,我在Winform窗口上布置了一个Panel,然后我另外做了两个用户控件,一个作为登入页面,另一个作为成功登入页面。现在程序运行的时候,我先让Panel加载了登入页面,然后和数据库比对用户名密码,这步没问题,然后,在这个用户控件中我在里面放了一个登入按钮,我想让它被点击的时候,窗口能够收到用户控件的消息,然后擦除Panel当前的登入页面,加载成功页面的用户控件,该如何做比较好?
我试了一下在窗口里写一个public的方法,但是好像没有成功,刚上手C#,代码写不好,请各位多多指导。
附:
解释一下,login和examselect是两个用户控件,WorkArea就是Panel的name,nextpanel就是我写的方法,我的想法是在login这个用户控件中,加了一个button,然后click事件就是调用这个nexpanel的方法,括号里面的string仅仅是用来判断现在加载的是login还是examselect用户控件。
public MainForm()
        {            
            InitializeComponent(); 
            login log = new login();
            log.Dock = DockStyle.Fill;
            DisPanel();
            this.WorkArea.Controls.Add(log);
        }
        private void DisPanel()
        {
            foreach (UserControl uc in this.WorkArea.Controls)
            {
                uc.Dispose();
            }
        }
        public void nextpanel(string panelname)
        {
            switch (panelname)
            {
                case "login":
                    {
                        examselect exam = new examselect();
                        exam.Dock = DockStyle.Fill;
                        DisPanel();
                        this.WorkArea.Controls.Add(exam);
                        this.btnBack.Visible = true;
                    }; break;
                default: break;
            }
        }

这个是login里面调用的写法:
MainForm winform=new MainForm();
                win