黑马程序员技术交流社区

标题: WPF中如何实现先登录后启动主程序的方法 [打印本页]

作者: LiangLiu    时间: 2013-7-5 12:40
标题: WPF中如何实现先登录后启动主程序的方法
运行程序后首先启动登录窗口,登录成功后进入主程序窗口,这是一个很经典的问题。如果要写一个应用程序都会用到这个小环节,可我挣扎了半天也没有解决,求指教!
作者: 关关雎鸠    时间: 2013-7-5 13:02
你在主程序加载的时候(Load)启动登录窗口不久可以了?如:
  1. Login login = new Login();
  2.             bool? b = login.ShowDialog();
  3.             if (b != true) {  //如果返回的是false或者null
  4.                 Application.Current.Shutdown(); //关闭整个应用程序
  5.                 return false;
  6.             }
  7.             return true;
复制代码

作者: LiangLiu    时间: 2013-7-5 13:11
关关雎鸠 发表于 2013-7-5 13:02
你在主程序加载的时候(Load)启动登录窗口不久可以了?如:

不是的,我是说先启动登录窗口,成功登陆后再加载主程序。登录的时候主程序没有。你这样的话登录的时候不就有主窗体了吗?
作者: 关关雎鸠    时间: 2013-7-5 13:31
隐藏主窗体吧,登录后再显示出来。
作者: changweihua    时间: 2013-7-5 13:31
本帖最后由 changweihua 于 2013-7-5 13:33 编辑

App.xaml中的StartupUri改成登录窗体,然后根据自己的条件,实例化主窗体
作者: zhangcheng5468    时间: 2013-7-6 07:47
楼上正解~,不过这样MainWindow就不在是主窗体了
作者: 关关雎鸠    时间: 2013-7-6 12:44
changweihua 发表于 2013-7-5 13:31
App.xaml中的StartupUri改成登录窗体,然后根据自己的条件,实例化主窗体

这样改,登录就是主窗体,关掉它就退出了程序。
作者: changweihua    时间: 2013-7-6 16:34
关关雎鸠 发表于 2013-7-6 12:44
这样改,登录就是主窗体,关掉它就退出了程序。

这个你可以自己控制登录窗体的关闭事件的嘛
作者: 关关雎鸠    时间: 2013-7-7 11:17
changweihua 发表于 2013-7-6 16:34
这个你可以自己控制登录窗体的关闭事件的嘛

怎么判断?关闭主窗体,打开子窗体?
作者: LiangLiu    时间: 2013-7-9 11:09
我试过了还是行不通,控制了子窗体的关闭事件后,要是登录时失败了,比如密码错误,然后把登录窗体关了,程序还是没法退出,还是正在运行啊
作者: /fendou    时间: 2014-5-5 15:12
Login login = new Login();
            bool? b = login.ShowDialog();
            if (b != true) {  //如果返回的是false或者null
                Application.Current.Shutdown(); //关闭整个应用程序
                return false;
            }
            return true;
这段代码放到 MainWindow的构造函数中

作者: /fendou    时间: 2014-5-5 15:14
public MainWindow()
        {
            InitializeComponent();

            LoginWindows loginForm = new LoginWindows();
            loginForm.ShowDialog();

            if (!loginForm.DialogResult == true)
            {
                this.Close();
            }   
        }
这样我试验成功了
作者: lovefmylgs    时间: 2014-5-9 02:10
利民回退欧弟个月




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2