如何判断 点击窗体右上方的 X (关闭按钮)?

通过重写Form的WndProc方法,利用Message.Msg属性判断用户是否点击了窗体右上角的关闭按钮(X)。在消息ID为161并且WParam为20时,显示提示信息并关闭窗体。

关于 Validating 事件 的触发 和 关闭按钮的控制!

在Validating 事件里面 判断 点击的是关闭按钮!

 

Public Class Form1

 

    ' Form.WndProc 方法

    ' VB.Net 提供了Form.WndProc 方法來處理Subclassing , 透過它來取得視窗訊息

    ' Protected : 指定已宣告的程式設計項目只可從自己的類別或從衍生類別中進行存取。

    ' Overrides : 指定屬性或程序會覆寫自基底類別繼承的相同命名屬性或程序。

    Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)

 

        ' 參數Message : 可實作Windows 訊息。

        ' Message.Msg 屬性: 取得或設定訊息的ID 編號。

        ' Message.WParam 屬性: 取得或設定訊息的WParam 欄位。

        If m.Msg = 161 And m.WParam = 20 Then

            MessageBox.Show("!  你點到X .. Form 即將關閉 !")

            Me.Close()

        End If

 

       或者 直接判断  m.Msg = 161 也可以

        ' MyBase : 提供方法來參考目前類別(Class) 執行個體的基底類別。

        MyBase.WndProc(m) ' 處理Windows 訊息。

 

    End Sub

Window 消息大全使用详解

http://cache.baidu.com/c?m=9d78d513d9861eb8599d83797901d6164a05c638788496422c96d15cd424054e1d20a5f930236319ce9f277001d8190fb1a67165377471eac4d58a00ddbd8f7871d572292b5ad11e0fd31efb9842239576c05fb8a41db6bcf06496a4d8d6895052dd537220c6afd5&p=833fc315d9c313eb0be2970c51&user=baidu

 

End Class

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值