WinForm中如何判断关闭事件来源于用户点击右上角的“关闭”按钮

在C#的WinForm程序中,有的时候需要判定关闭请求从哪里发出来的。比如是用户点击了右上角的“关闭”按钮,还是调用了WinForm.Close()方法。最典型的是要知道点击右上角的“关闭”按钮发出的事件。下面这个方法可以判断这点:

 程序代码

protected override void WndProc(ref Message msg) 

        const int WM_SYSCOMMAND = 0x0112; 
        const int SC_CLOSE = 0xF060;  
  
         if (msg.Msg == WM_SYSCOMMAND && ((int)msg.WParam == SC_CLOSE)) 
         { 
                 // 点击winform右上关闭按钮 
                 // 加入想要的逻辑处理

                 return;//阻止了窗体关闭
         } 
         base.WndProc(ref msg); 
}

时间: 2024-10-27 05:46:55

WinForm中如何判断关闭事件来源于用户点击右上角的“关闭”按钮的相关文章

link中如何判断一个事件里面有几个方法?如何选择性调用?

问题描述 link中如何判断一个事件里面有几个方法?如何选择性调用? link中如何判断一个事件里面有几个方法?如何选择性调用? 解决方案 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Reflection; using System.Text;

界面-QT按钮点击事件,怎么点击的是哪一个按钮

问题描述 QT按钮点击事件,怎么点击的是哪一个按钮 qt客户端程序中动态创建多个按钮,点击进入同一个界面,但点击不同按钮时界面上显示不同数据,要怎么才能实现啊 还有 qpushbutton的clicked事件能不能重写成带参数的信号传递啊 解决方案 你可以通过多加一层抽象来完成,通过子类化来完成,在创建BUTTON的时候通过多传入一个参数index,并且赋给该类的私有成员,等会点击的时候就可以根据index知道是哪个按钮触发的 class MyPushButton : public QPushB

Visual Studio 2010及以上版本不捕获WinForm中的Form.Load事件的异常

问题描述 privatevoidForm1_Load(objectsender,EventArgse){thrownewException();} 如上,F5调试,在Vs2008中,调试器将中断,提示引发异常,而VS2010及以上版本,程序直接运行起来了,就像没有异常一样.大家也是这种情况吗?如果是,怎么设置成跟VS2008一样,异常中断因为有时候自己写的程序明明有问题,但是由于调试器没中断,直接运行起来,所以往往很难发现问题所在 解决方案 解决方案二:怀疑是.NET版本问题解决方案三:这个应该

请大家指点一下如何在用户点了右上角的关闭后调用一个函数?谢谢了~

问题描述 如题谢谢大家了 解决方案 解决方案二:<script>functionPromptOnClose(evt){return"confirmclosethewindow?";}window.onbeforeunload=function(evt){vare=evt?evt:window.event;returnPromptOnClose(evt);}</script> 解决方案三:下次问问题说清楚点...解决方案四:1楼是可以的

Winform 中 DesignMode 返回值不正确的问题。

本文转载:http://blog.csdn.net/sabty/article/details/5325260 以前也曾遇到这样的问题,不过影响不大也没有去详细了解.今天又重新遇到此问题,实在太不便.经查证这是 Visual Studio 2005 的 Bug.微软对此的 Bug 描述:http://support.microsoft.com/?scid=kb;zh-cn;839202&x=10&y=15 //DesignMode存在BUG,在构造函数里面DesignMode永远都是fal

windows server 2008取消关闭事件跟踪

对于普通用户来说,计算机的关闭和重新起动应该是很正常的事情,然而对于服务器级别的计算机来说就不是这样了.所以为了增加系统的安全性,Windows Server 2008在关闭或者重新启动的时候需要给出适当的理由,并且将其命名为"关闭事件跟踪程序".只有在提供了关闭计算机的原因(硬件维护.应用程序安装.安全问题等),并输入一些说明注释之后才能进行关闭.长久以往,用户会觉得很麻烦,因此取消这个繁琐的步骤可以让关机变得更简单. (1)单击"开始→运行"命令,并且在弹出窗口

站长如何处理计划中的网站关闭事件

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 有一段时间用户经常问我们,如果某个网站在谷歌机器人搜索时处于关闭状态,那么该网站在谷歌搜索结果中的"可见度"是否会受到负面影响.有时11518.html">网站关闭是一种不可避免的事件:网站站长可能因网站常规维护或出于法律或文化方面的考虑而临时关闭网站.如果没有向用户明确声明出于以上原因而关闭网站,那么网站

Java中窗口关闭事件。

问题描述 Java中窗口关闭事件. 程序代码如下: package com.packageTemp; import java.awt.event.*; import javax.swing.*; import java.awt.*; public class MouseAdapterTest { JFrame f=null; JButton btn=null; public static void main(String[] args) { new MouseAdapterTest(); } /

窗体-C#中如何添加FormClose事件 按了关闭,程序没有停止调试,求大神指导

问题描述 C#中如何添加FormClose事件 按了关闭,程序没有停止调试,求大神指导 刚开始学习C#窗体 做登录界面 在登录按钮设置了 连接一个成功提示,但是进去了按关闭的时候,窗体并没有停止运行,一直在调试,求该如何解决,希望大神们帮帮忙 private void button1_Click(object sender, EventArgs e) { if(textBox1.Text=="admin"&&textBox2.Text=="123")