C#中的新一代WindowsWPF中将用户界面测试和业务逻辑相分离关键之处是什么?这样设计的优势是什么

周热销排行
用户评论(2)
在此可输入您对该资料的评论~
都没有完整的吗
只有一部分
添加成功至
资料评价:C#中关闭第一个Form窗口,打开另一个新窗口方法
很多同学问怎么关闭一个FORM打开另一个新Form。这个问题最多的是在做登录验证时,使用第一个登录窗 登录成功后要关闭自己,然后打开新窗显示。没想到这个问题在.Net还成了问题,不过依然有很多方法解决。
Form1 f = new Form1();
this.Close();
最后的关闭时把整个程序都关闭了
1隐藏法,原理就是把旧窗口隐藏掉,再打开新窗口。
//新建一个NewForm窗口(NewForm是自己定义的Form)
NewForm fm=new NewForm()
this.Hide();//隐藏现在这个窗口
fm.Show();//新窗口显现
这种方法旧的窗口依旧会占内存,因此如果用来做登陆窗口不太好,但是如果旧窗口是以后还需要恢复的主窗口,这个方法便很不错,因为以后可以关掉新窗口,再用 旧窗口.Show() 就可以恢复旧窗口了。
所以这个方法适合在主窗口和子窗口间传递信息。
2、再来便是为登录窗口设计的方法了。
在Program.cs里这样定义:
static void Main()
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//新建Login窗口(Login是自己定义的Form)
Login Log = new Login();
//使用模式对话框方法显示Log
Log.ShowDialog();
//DialogResult就是用来判断是否返回父窗体的
if (Log.DialogResult == DialogResult.OK)
//在线程中打开主窗体
Application.Run(new Main());
在登陆窗口中验证结束后要赋值Log.DialogResult = DialogResult.OK 。
登录窗口完成任务后会被直接关掉,主窗口就打开了
网上大多都是前面2种方法,另外还看到一个方法用线程的方法方法,未验证
public static void ThreadProc()
Application.Run(new Form());
private void button1_Click(object sender, EventArgs e)
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ThreadProc));
t.Start();
C#时,经常会遇到处理两个或多个窗口的问题。以登录窗口为例,当登录窗口登录验证成功后,要进入主窗口,此时需要关闭登录窗口,这时候用this.close()是不可以的。因为Program.cs中
static void Main()
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
Main 函数是程序的入口点,当你在Form1中调用this.close ()的时候,Application.Run(new Form1())中Form1就会结束,也就是说整个程序结束了,此时主窗口也会相应的关闭,这不是我们想看到的。下面有两种方法来只关闭登录窗口,而主窗口仍然运行。
4. 先隐藏登录窗口, 然后在主窗口关闭后将登录窗口关闭
这种方法只是把登录窗口隐藏了,主程序还在运行。实现方法为:
登录窗口代码:
if (user.CheckIn())
MainForm myform = new MainForm(this);
//调用带参的构造函数
myform.Show();
this.Hide();
MessageBox.Show("用户名或密码错误");
登录成功后,通过构造函数传入登录窗口的参数到主窗口,这样在主窗口里可以直接对登录窗口操作
Form1 loginform =
// 在主窗口添加带参的构造函数
public MainForm(Form1 myform)
this.loginform =
InitializeComponent();
主窗口关闭后,关闭登录窗口
private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
loginform.Close();
5. 将主窗口程序设为主运行程序,
修改Program.cs
Application.Run(new MainForm());
这样启动时,运行的是主窗口程序。然后在主窗口加载时去调用登录窗口就可以了。
private void MainForm_Load(object sender, EventArgs e)
Form1 form = new Form1();
form.ShowDialog();
this.Close();
登录窗口代码为:
if (user.CheckIn())
this.Close();
MessageBox.Show("用户名或密码错误");
参考: vs.net在中关闭第一个登录Form窗口打开另一个新窗口方法
参考: C#在一个窗口中打开另一个窗口,同时关闭该窗口 上传我的文档
 上传文档
 下载
 收藏
粉丝量:145
该文档贡献者很忙,什么也没留下。
 下载此文档
基于WPF的图像处理系统的设计与实现
下载积分:1500
内容提示:基于WPF的图像处理系统的设计与实现
文档格式:PDF|
浏览次数:148|
上传日期: 14:36:01|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1500 积分
下载此文档
该用户还上传了这些文档
基于WPF的图像处理系统的设计与实现
关注微信公众号WPF是一种编程语言吗?和C#有什么区别?_百度知道
WPF是一种编程语言吗?和C#有什么区别?
学WPF需要学什么呢?需要学习C#吗
我有更好的答案
WPF是一种框架,建立在.net之上,是Windows的下一代图形子系统,在表面上看是用来替代WinForm他的地位和ASP.NET相似,都可以使用C#来编写
采纳率:40%
WPF需要用到XML,C#知识
为您推荐:
其他类似问题
您可能关注的内容
wpf的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。&&&&C#入门经典(第6版)
自营订单满49元(含)免运费
不足金额订单收取运费5元起
邀请好友参加吧
开 本:大32开纸 张:胶版纸包 装:平装是否套装:否国际标准书号ISBN:4所属分类:&&&
下载免费当当读书APP
下载当当读书APP,免费阅读万本电子书。
本商品暂无详情。
当当价:为商品的销售价,具体的成交价可能因会员使用优惠券、积分等发生变化,最终以订单结算页价格为准。
划线价:划线价格可能是图书封底定价、商品吊牌价、品牌专柜价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品曾经展示过的销售价等,由于地区、时间的差异化和市场行情波动,商品吊牌价、品牌专柜价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:折扣指在划线价(图书定价、商品吊牌价、品牌专柜价、厂商指导价等)某一价格基础上计算出的优惠比例或优惠金额。如有疑问,您可在购买前联系客服咨询。
异常问题:如您发现活动商品销售价或促销信息有异常,请立即联系我们补正,以便您能顺利购物。
当当购物客户端手机端1元秒
当当读书客户端万本电子书免费读

我要回帖

更多关于 用户界面 的文章

 

随机推荐