各位达人,在点击“关闭”按钮后,如何阻止关闭操作!

chennianboy 2003-08-19 11:58:52
各位达人,在点击“关闭”按钮后,如何阻止关闭操作!因为我想在关闭之前做些保存的操作,还有一点就是,能不能由我窗体中的一个类来调用该窗体的关闭操作。大致的代码如下:
窗体代码:
private JiaoxueJianse jj;//定义一个类
private void butClose_Click(object sender, System.EventArgs e)
{
jj.Close();//本窗体中一个按钮单击事件
}
JiaoxueJianse类的代码:
……
public void Close() //窗体关闭功能函数
{
dg.FindForm().Close();//dg为从窗体中传过来的一个控件
}
出错信息:
未处理的“System.ComponentModel.Win32Exception”类型的异常出现在 system.windows.forms.dll 中

其他信息:创建窗口句柄时出错。
帮帮忙,感激不尽!
...全文
38 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
雪狼1234567 2003-08-20
  • 打赏
  • 举报
回复
2..事窗口的Closing事件中写如下的代码:
private void frmBase_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{

if (MessageBox.Show ("目前还没没有保存的数据,要保存吗?", "系统提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult.Yes)
{//保存数据}
else
{
e.Cancel = true;//无法关闭窗口,设为false时可以关闭
}
layershow 2003-08-20
  • 打赏
  • 举报
回复
呵呵
就知道
Closing 事件
在Close之前发生
e.Cancel = true; 窗体就不会被关闭.
后面的没太看明白什么意思.^^
雪狼1234567 2003-08-20
  • 打赏
  • 举报
回复
两种方法:
1...截获消息处理:
protected override void WndProc(ref Message m)
{
const int SC_CLOSE = 0xF120;
const int WM_SYSCOMMAND = 0x0112;
if(m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
{
return;
}
base.WndProc(ref m);
}
angelior 2003-08-20
  • 打赏
  • 举报
回复
e.Cancel = true;//无法关闭窗口,设为false时可以关闭
calmzeal 2003-08-20
  • 打赏
  • 举报
回复
第1楼上说了
第2不太会
你试试把要关闭的窗体设为static
然后再类里直接用form1.close();
cnhgj 2003-08-20
  • 打赏
  • 举报
回复
closing事件,简单,方便,是居家施行之必备良方!!!
poetc 2003-08-20
  • 打赏
  • 举报
回复
1)你设一变量bl=true;
private void butClose_Click(object sender, System.EventArgs e)
{
bl=false;
jj.Close();//本窗体中一个按钮单击事件


}
2)
private void frmBase_Closing(object sender, System.ComponentModel.CancelEventArgs e)

{
e.Cancel=bl;
}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧