使用usercontrols登录屏幕逻辑

时间:2015-04-10 13:23:47

标签: c# winforms user-controls

想象一下,我们有一个表单和几个用户控件。其中一个用户控件包含登录操作,有用户名,通过文本框登录按钮等。当程序首次打开时,它显示表单并在表单的加载事件中,登录屏幕的用户控件弹出如下:

login login = new login();
Controls.Add(login);
login.Show();

这也没问题。现在,当用户输入所请求的数据并点击登录控件中的ok按钮时,必须关闭登录控件,并且必须在表单中显示另一个主菜单的用户控件。如何我实现了吗? 尝试添加第二个用户控件,但对我来说似乎非常不合逻辑,因为必须根据第一个用户控件显示第二个用户控件(用户是否已正确登录)

main main = new main();
Controls.Add(main);
main.Show();

那么处理这类场景的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

在登录用户控件中,您可以使用父函数删除控件本身 - 这将使您能够访问用户控件放置位置的控件(即面板)。

从此处添加新的mainmenu用户控件,或者在主窗体的加载中,您可以将两个用户控件堆叠在一起,并将登录控件置于前端。前者可能是最好的,因为它意味着您在需要时创建控件。

编辑:

至于最佳实践,我并不完全确定,它可能适合您的编程需求。例如,包含我的usercontrols的面板,我在程序开头就引用了一个公共类,所以我可以稍后在不同的控件中访问它。这样可以避免不得不通过父母反击。