应用程序窗体都会有最小化,最大化,和关闭
如果在form1跳转到form2
使用的方法是隐藏form1 显示form2的话,按form2的关闭图标(就是右上角的那个交叉按钮)只能关闭form2,不能把应用程序整个关闭,如果我想要关闭任意一个form的都可以实现关闭整个程序要如何写,另外的话,如果按那个关闭键,需要弹出一个提示框,提示确认关闭和返回程序,又该如何写,希望各位大侠们能帮助我!!!
谢谢!!!
如果在form1跳转到form2
使用的方法是隐藏form1 显示form2的话,按form2的关闭图标(就是右上角的那个交叉按钮)只能关闭form2,不能把应用程序整个关闭,如果我想要关闭任意一个form的都可以实现关闭整个程序要如何写,另外的话,如果按那个关闭键,需要弹出一个提示框,提示确认关闭和返回程序,又该如何写,希望各位大侠们能帮助我!!!
谢谢!!!
解决方案 »
- c# 搜索问题
- winform全屏后,界面加载慢,变卡
- C# 插入记录到access
- socket程序的问题
- C#如何读取Word文档中指定的一页内容?
- 【请教一个超级弱智的问题】
- 请问一个很简单的问题,怎么把一个dataview 转化为dataset ?
- c# RemObjects.SDK.Serializer 拆箱搞不定,求助
- 求c#代码实例完整版的(免费的那种)
- JavaScript 运行时错误: “WdatePicker”未定义
- UPDATE {0} SET DisplayOrder=DisplayOrder+{2} WHERE ID={1} AND CompanyID={3}";
- [C# OLEDB 操作数据库] 几个小问题 顺便散分
Form1 form =new Form1
form.
如果你要实现form2也可以关闭程序则在form1中监听form2的FormClose事件,判断一下是否需要退出程序,如果需要则关闭form1即可;
如果form1是主窗口,form1的关闭会直接导致程序关闭.
//Form1窗体关闭事件
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Application.ExitThread();//关闭该线程上的所有窗体
}
]//Form2窗体关闭事件
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Application.ExitThread();//关闭该线程上的所有窗体
}这样做就不会发生你遇到的情况了
2.然后双击该按钮,在它的单击事件中添加这些代码
3.Form2 form2 = new Form2();
form2.show();
即可实现从窗体1跳转至窗体2
4.关闭窗体的方法:
(1)this.Close();
(2)Application.Exit();
(3)this.Dispos();
如果需要弹出关闭提示,是否在关闭事件里面添加messagebox呢?
dialogresult result= messagebox.show("是否关闭","系统提示",messageboxbutton.yesorno,messageboxicon.information);
if(result==dialogresult.yes)
{
....
}
{
Application.exit()
}
else
{
不做任何处理
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if(MessageBox.Show("确定要关闭吗","提示",MessageBoxButtons.OKCancel)==DialogResult.OK)
{
Application.exit()
} }
这样就OK啦
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if(MessageBox.Show("确定要关闭吗","提示",MessageBoxButtons.YesNo)==DialogResult.No)
{
e.Cancel = true;//取消关闭
}
}
form.show();
要全部推出就添加一个closing事件就行了
2.form.closing (event)
然后当关或者最小化form 1 的时候,用form2.show()实现form2的打开,在form2初始化的时候写form1.display == false。
分别给两个窗口添加closing时间,用Application.exit() ,就可以了
错误 1 “System.Windows.Forms.FormClosedEventArgs”并不包含“cancle”的定义
如果用e.cancle=true;的话,会出现上面的错误,是什么原因呢??
一. 要添加Form2_FormClosing事件,在添加此方法之前首先要在Form2的初始化(initialization)中注册此事件
this.FormClosing += //具体代码我打不出来,vs会提示的二. Form.cs中的代码(手打的,难免有拼写错误):
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
if(MessageBox.Show("您即将退出系统,您确定吗?","您确定关闭本窗体吗?",MessageBoxButtons.YesNo,MessageBoxIcon.Question)==DialogResult.Yes)
{
Application.exit()
}
else
{
e.Cancel;
}
}
{
if (MessageBox.Show("是否关闭", "系统提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
return;
}
else
e.Cancel = true;
}
form.Show();
2.然后双击该按钮,在它的单击事件中添加这些代码
3.Form2 form2 = new Form2();
form2.show();
即可实现从窗体1跳转至窗体2
4.关闭窗体这个很好!以前经常这样干
参考MSDN如下:Exit 方法停止在所有线程上运行的所有消息循环,并关闭应用程序的所有窗口。 该方法并不强制退出该应用程序。Exit 方法通常从一个消息循环内调用,该方法强制 Run 返回。 若要只退出当前线程的某个消息循环,请调用 ExitThread。 Exit 引发下列事件并执行关联的条件操作: 为 OpenForms 属性表示的各个窗体引发 FormClosing 事件。 可以通过将这些窗体的 FormClosingEventArgs 参数的 Cancel 属性设置为 true,取消此事件。 如果多个处理程序的其中之一取消该事件,则 Exit 将返回而无进一步操作。 否则,将为每个打开的窗体引发 FormClosed 事件,然后关闭所有正在运行的消息循环和窗体。