WPF:验证登录后关闭登录窗口,显示主窗口的解决方法
http://www.27ba.com/post/145.html
WPF:验证登录后关闭登录窗口,显示主窗口的解决方法
最近想做一个基于Socket的通讯工具,想模仿QQ那样,需要先登录,登录成功后才显示主界面。但一开始的时候只要对登录的窗体做Close,然后程序就直接退出了。因为程序入口是登陆窗体,一旦Close了,整个程序自然也就退出了,如果想实现关闭登录界面(不是Hide()隐藏),显示主界面的话,可以利用DialogResult来实现。主界面设置为入口的主界面。主界面的Load事件如下:
public MainWindow()
{
InitializeComponent();
//显示登陆界面,验证后返回。
LoginWindow loginWindow = new LoginWindow();
loginWindow.ShowDialog();
if (loginWindow.DialogResult != Convert.ToBoolean(1))
{
this.Close();
}
//显示登陆界面 结束
}
也可以把代码放在Window_Loaded中,但缺点时候登陆窗口与主窗口都同时加载,而放在MainWindow()中先加载登陆窗口验证完毕后才加载主窗口。
然后在登录界面的验证按钮事件里验证通过后只要加上如下代码即可:
private void BtLogin_Click(object sender, RoutedEventArgs e)
{
if (TxUserName.Text == "admin" && TxPassword.Password == "admin")
{
this.DialogResult = Convert.ToBoolean(1);
this.Close();
}
else
{
MessageBox.Show("账号或密码错误!");
}
}
这样就可以实现关闭登录界面时不退出应用程序了。
WPF:验证登录后关闭登录窗口,显示主窗口的解决方法的更多相关文章
- Devexpress xaf针对某个用户登录后在面板中设置导航无效的解决方法
Devexpress xaf框架生成的项目默认情况下导航栏是显示在左侧,有时候我们用某个账户登录后,发现导航栏无法显示在左侧,操作十分不方便.我们可以去数据库删除当前登录用户的自定义布局 解决方法如下 ...
- WPF 先显示登录成功,验证成功后显示主窗口
/// 设置显示登录窗口的方法: /// 在 App.xaml 中把这句 /// 删掉 StartupUri="MainWindow.xaml" 改为 StartupUri=&qu ...
- winform程序登陆后关闭登录窗体
用winform做程序的时候,我们一般都是在Program先启动登录窗体,然后登录成功后才创建主窗体,结果这就导致了登录窗体无法关闭 所以如果我们不在Program的程序入口先创建登录窗体的话就能完美 ...
- WPF中任务栏只显示主窗口
我们在用WPF开发的时候,常常会遇到在主窗口打开的情况下,去显示子窗口,而此时任务栏同时显示主窗口与子窗口.这样看起来很不美观.所以在弹出子窗口之前,设置它的几个相应属性,便不会出现这种问题了. // ...
- winform,wpf全屏 还显示任务栏的解决方法
原文:winform,wpf全屏 还显示任务栏的解决方法 以wpf为例: 全屏代码: this.Topmost = true; this.WindowStyle = System.Windows.Wi ...
- CentOS下shell显示-bash-4.1#不显示用户名路径的解决方法
CentOS下shell显示-bash-4.1$不显示用户名路径的解决方法 问题描述: CentOS下新增一个用户,登录进去之后shell脚本的信息如下: 而不是我们经常看到的username@hos ...
- (转载)SQL Server2008附加数据库之后显示为只读时解决方法
SQL Server2008附加数据库之后显示为只读时解决方法 啰嗦的话就不多说了,直入主题吧! 方案一: 碰到这中情况一般是使用的sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定 ...
- Linux 下shell显示-bash-4.1$不显示用户名路径的解决方法
Linux CentOS下shell显示-bash-4.1$不显示用户名路径的解决方法 问题描述: CentOS下新增一个用户,登录进去之后shell脚本的信息如下: 而不是我们经常看 ...
- VS工具箱不显示DEV控件解决方法
VS工具箱中不显示DEV控件解决方法 之前先装vs,再装dev控件,vs工具栏中自动会加载并显示dev相关组件,但是,在更新vs(我用2017版)后,原先安装好的dev控件库不显示在vs的工具栏中了. ...
随机推荐
- Apache多站点配置(ubuntu)(原创)
1,先进入Apaches2的目录下 cd /etc/apache2 2,进入sites-available中 cd sites-available vi 000-default.conf ...
- Xamarin.Android Timer使用方法
首先声明命名空间: using System.Threading; 然后创建Timer对象: Timer timer; 接着实例化timer并且给委托事件: TimerCallback timerDe ...
- webServlet("/") 和 webServlet("/*") 的区别
“/” 默认放行了jsp,也就是jsp文件不执行下面的service方法,其他都执行 “/*” 全部执行
- Android应用系列:双击返回键退出程序
前言 有一个很古老的应用技巧,一直被各种大大小小的app用得乐此不疲,那就是双击返回键退出程序.今天就写写它的实现代码,非常简单而且实用. 正文 双击返回键退出程序,一般有两种实现思路,一种是用一个布 ...
- 首个hybird商业项目踩坑总结
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...
- vc++开发安装程序实例
前言 市面上有很多安装程序制作软件:但是,要实现个性化安装程序,还是自己动手来写一个更为妥当.本文介绍基本的安装程序制作的步骤. 安装程序界面: 安装程序可以分为几个功能点:1 资源的嵌入.释放.2 ...
- Django | 模型类变更后生成迁移文件,报错:You are trying to add a non-nullable field 'BookName' to BookInfo without a default....
报错: You are trying to add a non-nullable field 'BookName' to BookInfo without a default; we can't do ...
- leetcode — substring-with-concatenation-of-all-words
import java.util.*; /** * Source : https://oj.leetcode.com/problems/substring-with-concatenation-of- ...
- java界面设计(swing)
1.Swing基本组件 窗体控件 JFrame.容器控件 JPanel .标签控件 JLabe.按钮控件 JButton.文本框控件 JTextField 与 JTextArea(注意JScrollP ...
- datatable删除行之datatable.Rows[i].Delete()。标记之后行没有了
使用Delete()之后行消失了 先在for循环外加上dt.AcceptChanges(); 删除时在dt.AcceptChanges();