禁用窗体的关闭按钮

Public Class Form1
 
    Private Declare Function GetSystemMenu Lib "User32" (ByVal hwnd As Integer, ByVal bRevert As Integer) As Integer
    Private Declare Function RemoveMenu Lib "User32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
    Private Declare Function DrawMenuBar Lib "User32" (ByVal hwnd As Integer) As Integer
    Private Declare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Integer) As Integer
    Private Const MF_BYPOSITION = &H400&
    Private Const MF_DISABLED = &H2&
    Private Sub disableX(ByVal wnd As Form)
        Dim hMenu As Integer, nCount As Integer
        '得到系统Menu
        hMenu = GetSystemMenu(wnd.Handle.ToInt32, 0)
        '得到系统Menu的个数
        nCount = GetMenuItemCount(hMenu)
        '去除系统Menu
        Call RemoveMenu(hMenu, nCount - 1, MF_BYPOSITION Or MF_DISABLED)
        '重画MenuBar
        DrawMenuBar(Me.Handle.ToInt32)
    End Sub
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        disableX(Me)  '屏蔽关闭按钮
    End Sub
 
    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Me.MaximizeBox = False '屏蔽最大化按钮
    End Sub
 
    Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        Me.MinimizeBox = False '屏蔽最小化按钮
    End Sub
End Class

 

最后修改日期:2019年11月12日

留言

撰写回覆或留言