C# MDI模式下关闭父窗体时子窗体中的提示如何让它不弹出? C# MDI模式下关闭父窗体时子窗体中的提示如何让它不弹出?父窗体的Closing事件和子窗体的Closing先执行的是子窗体的最后执行父窗体的这样关闭父窗体的时候 先弹出子窗体的提示,这里就是想关闭父窗体时只弹出父窗体的提示,子窗体不提示 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看Closing事件中的e.CloseReason如果是主Form关闭的他是FormOwnerClosing 同意楼上的在子Form的Closing事件中作判断就可以了 请问一下你们用的是VS2003吗?我怎么在Closing事件中e.CloseReason就是.不出来CloseReason呢哪位大哥能给整段代码看看啊 protected override void OnFormClosing(FormClosingEventArgs e){ if (e.CloseReason == CloseReason.FormOwnerClosing) { base.OnFormClosing(e); return; } else { //弹出提示消息 }} 03里面是比较麻烦你可以监视你主窗口的消息protected override void WndProc(ref Message m){ if (m.Msg == 0x0112 && (int)m.WParam == 0xF060) // WM_SYSCOMMAND = 0x0112, SC_CLOSE = 0xF060 { //这里设置全局变量 return; } base.WndProc(ref m);}然后再子窗体的Closing事件中判断 这段代码直接拷贝到主窗体中就可以了然后你点主窗体的关闭按钮的时候就会执行到if里面这个是Windows的消息 还是不行啊 把代码放到主窗体运行 程序就会 每次都执行if (m.Msg == 0x0112 && (int)m.WParam == 0xF060) // WM_SYSCOMMAND = 0x0112, SC_CLOSE = 0xF060 剩下的就没反应了 当然每次都会执行但是不是每次都会执行if里面的东西~~~~~我是让你在if里面设置全局变量 假设你有个全局变量bool isMainFormExist = false;protected override void WndProc(ref Message m) { if (m.Msg == 0x0112 && (int)m.WParam == 0xF060) // WM_SYSCOMMAND = 0x0112, SC_CLOSE = 0xF060 { isMainFormExist = true; } base.WndProc(ref m); } 然后再子窗体Closing事件里面判断isMainFormExistprivate void Closing(){ if (!isMainFormExist) { //弹出提示 }} web上传音频文件如何得到文件时间长度 C#中界面分为两个部分,点左边的功能右边的显示发生相应的变化 c#,winform,想运用xml作为配置文件,然后通过读取文件中的信息动态生成控件,请高手给予指导! 如何向字符串前面加字符 怎样获得系统在哪个盘? 请教一个关于水晶报表奇怪的问题,谢谢 VS2005发布网站,上传到服务器上出错!!SOS急救 关于girdview编辑模板事件 如何用.net程序断开一个TCP连接 c#共享 各位牛人,耽误你几秒种,给个思路! 求正则表达式: 100 或100,200 这样的字符串
他是FormOwnerClosing
在子Form的Closing事件中作判断就可以了
我怎么在Closing事件中e.CloseReason就是.不出来CloseReason呢
哪位大哥能给整段代码看看啊
{
if (e.CloseReason == CloseReason.FormOwnerClosing)
{
base.OnFormClosing(e);
return;
}
else
{
//弹出提示消息
}
}
你可以监视你主窗口的消息protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0112 && (int)m.WParam == 0xF060) // WM_SYSCOMMAND = 0x0112, SC_CLOSE = 0xF060
{
//这里设置全局变量
return;
} base.WndProc(ref m);
}然后再子窗体的Closing事件中判断
然后你点主窗体的关闭按钮的时候就会执行到if里面这个是Windows的消息
剩下的就没反应了
但是不是每次都会执行if里面的东西~~~~~我是让你在if里面设置全局变量
{
if (m.Msg == 0x0112 && (int)m.WParam == 0xF060) // WM_SYSCOMMAND = 0x0112, SC_CLOSE = 0xF060
{
isMainFormExist = true;
} base.WndProc(ref m);
} 然后再子窗体Closing事件里面判断isMainFormExist
private void Closing()
{
if (!isMainFormExist)
{
//弹出提示
}
}