C#窗体关闭问题... 当鼠标点击窗体右上角的那个 X 就是关闭窗体,要求弹出一个提示! 显示 1退出 2最小化 如果选择 退出 就关闭窗体如果选择 最小化 就把窗体最小化,谢谢啦啊帅哥们帅姐们 小弟向你们致敬! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 protected override void OnClosing(CancelEventArgs e) { //退出提示,真的要退出,才允许退出 if (MessageBox.Show(this, "你真的要退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { e.Cancel = true; } } void Form1_FormClosing(object sender, FormClosingEventArgs e){ if (MessageBox.Show("是否现在关闭窗口", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) { e.Cancel = true; }} const int WM_SYSCOMMAND = 0x112;const int SC_CLOSE = 0xF060;const int SC_MINIMIZE = 0xF020;const int SC_MAXIMIZE = 0xF030;protected override void WndProc(ref Message m){ if (m.Msg == WM_SYSCOMMAND) { if (m.WParam.ToInt32() == SC_MINIMIZE) { this.Visible = false; return; } } base.WndProc(ref m);} 在FormCloseing事件里这样写就行了 if (MessageBox.Show(this, "你真的要退出?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { e.Cancel = true; } e.Cancel = true; 这里报错 真会报错???不信有鬼 private void mainForm_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("确定要退出程序吗?", "退出确认", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No) { e.Cancel = true; } } void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("是否现在关闭窗口", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) { e.Cancel = true; } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { DialogResult result; result = MessageBox.Show("确定退出吗?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (result == DialogResult.OK) { //SaveIniFile(); System.Windows.Forms.Application.ExitThread(); } else { e.Cancel = true; } }绝对能用! 在formclosing事件里写你想写的代码 这个绝对能用,点击窗口的属性下面的事件中的FormClosing事件 void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("是否现在关闭窗口", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) { e.Cancel = true; } } 我想就是这样的!!! MSDN:在 .NET Framework 2.0 版中,OnClosing 方法已过时;请改用 OnFormClosing 方法。当调用 Application.Exit 方法退出应用程序时,不会调用 OnClosed 和 OnClosing 方法。如果在必须执行的任一个方法中有验证代码,则在调用 Form.Close 方法之前,应分别为每个打开的窗体调用 Exit 方法。 protected override void OnFormClosing(FormClosingEventArgs e) { //... } 这个可以用已经解决了谢谢你们。 但是那个在窗体关闭时的事件 里面写 e.Cancel = true; e. 点不出 Cancel这个属性,不知道怎回事。我用的是VS2005 你们这些认真好,我有什么不懂的都可以问 好好学习,天天向上 在WINCE5。0下,用C#画图问题 高手请进来:CBC中MD5与C#中MD5结果不一致??? 接口中如声明自定义事件? 用webBrower,TabContol做浏览器的问题 求解 程序溢出错误的原因? 全局变量声明 如何从XML字符串加载数据集??? 下载文件时有什么办法可以不直接打开文件而是弹出下载对话框?我还有乱码 怎样对一组输入的字符串的每个字符简单加密再输出的问题 关于API 水晶报表中怎样将数据有一行变为一列显示 ListView访问数据库
{
//退出提示,真的要退出,才允许退出
if (MessageBox.Show(this, "你真的要退出?", "提示",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.No)
{
e.Cancel = true;
}
}
{
if (MessageBox.Show("是否现在关闭窗口", "提示",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Question) != DialogResult.OK)
{
e.Cancel = true;
}
}
const int SC_CLOSE = 0xF060;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam.ToInt32() == SC_MINIMIZE)
{
this.Visible = false;
return;
}
}
base.WndProc(ref m);
}
if (MessageBox.Show(this, "你真的要退出?", "提示",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question) == DialogResult.No)
{
e.Cancel = true;
}
e.Cancel = true; 这里报错
private void mainForm_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("确定要退出程序吗?", "退出确认", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.No)
{
e.Cancel = true;
}
}
{
if (MessageBox.Show("是否现在关闭窗口", "提示",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Question) != DialogResult.OK)
{
e.Cancel = true;
}
}
{
DialogResult result;
result = MessageBox.Show("确定退出吗?", "退出", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (result == DialogResult.OK)
{
//SaveIniFile();
System.Windows.Forms.Application.ExitThread();
}
else
{
e.Cancel = true;
}
}
绝对能用!
{
if (MessageBox.Show("是否现在关闭窗口", "提示",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Question) != DialogResult.OK)
{
e.Cancel = true;
}
}
我想就是这样的!!!
{
//...
}
这个可以用已经解决了谢谢你们。 但是那个在窗体关闭时的事件 里面写 e.Cancel = true; e. 点不出 Cancel这个属性,不知道怎回事。我用的是VS2005 你们这些认真好,我有什么不懂的都可以问 好好学习,天天向上