A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

运行程序后首先启动登录窗口,登录成功后进入主程序窗口,这是一个很经典的问题。如果要写一个应用程序都会用到这个小环节,可我挣扎了半天也没有解决,求指教!

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

12 个回复

倒序浏览
你在主程序加载的时候(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;
复制代码

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
关关雎鸠 发表于 2013-7-5 13:02
你在主程序加载的时候(Load)启动登录窗口不久可以了?如:

不是的,我是说先启动登录窗口,成功登陆后再加载主程序。登录的时候主程序没有。你这样的话登录的时候不就有主窗体了吗?
回复 使用道具 举报
隐藏主窗体吧,登录后再显示出来。
回复 使用道具 举报
本帖最后由 changweihua 于 2013-7-5 13:33 编辑

App.xaml中的StartupUri改成登录窗体,然后根据自己的条件,实例化主窗体

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
楼上正解~,不过这样MainWindow就不在是主窗体了
回复 使用道具 举报
changweihua 发表于 2013-7-5 13:31
App.xaml中的StartupUri改成登录窗体,然后根据自己的条件,实例化主窗体

这样改,登录就是主窗体,关掉它就退出了程序。
回复 使用道具 举报
关关雎鸠 发表于 2013-7-6 12:44
这样改,登录就是主窗体,关掉它就退出了程序。

这个你可以自己控制登录窗体的关闭事件的嘛
回复 使用道具 举报
changweihua 发表于 2013-7-6 16:34
这个你可以自己控制登录窗体的关闭事件的嘛

怎么判断?关闭主窗体,打开子窗体?
回复 使用道具 举报
我试过了还是行不通,控制了子窗体的关闭事件后,要是登录时失败了,比如密码错误,然后把登录窗体关了,程序还是没法退出,还是正在运行啊

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
Login login = new Login();
            bool? b = login.ShowDialog();
            if (b != true) {  //如果返回的是false或者null
                Application.Current.Shutdown(); //关闭整个应用程序
                return false;
            }
            return true;
这段代码放到 MainWindow的构造函数中
回复 使用道具 举报
public MainWindow()
        {
            InitializeComponent();

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

            if (!loginForm.DialogResult == true)
            {
                this.Close();
            }   
        }
这样我试验成功了
回复 使用道具 举报
lovefmylgs 来自手机 中级黑马 2014-5-9 02:10:52
13#
利民回退欧弟个月
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马