Yazı Font Küçült Yazı Font Büyült

Formun Kapat Tuşunu Etkisiz Hale Getirmek

Forma ait üst menüdeki kapat tuşunu etkisiz hale getireceğiz. Bunun için GetSystemMenu, EnableMenuItem library dosyalarından yararlanacağız. Aşağıdaki Şekil 1 i inceleyin.

Resim1

Şekil 1

Public Class Form1
    Public Class CloseButton
        Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Integer, ByVal revert As Integer) As Integer
        Private Declare Function EnableMenuItem Lib "user32" (ByVal menu As Integer, ByVal ideEnableItem As Integer, ByVal enable As Integer) As Integer

        Private Const SC_CLOSE As Integer = &HF060
        Private Const MF_BYCOMMAND As Integer = &H0
        Private Const MF_GRAYED As Integer = &H1
        Private Const MF_ENABLED As Integer = &H0

        Public Shared Sub Disable(ByVal form As System.Windows.Forms.Form)

            Select Case EnableMenuItem(GetSystemMenu(form.Handle.ToInt32, 0), SC_CLOSE, MF_BYCOMMAND Or MF_GRAYED)
                Case MF_ENABLED
                Case MF_GRAYED
                Case &HFFFFFFFF
                    Throw New Exception("Kapat menüsü bulunamadı.")
                Case Else
            End Select
        End Sub
    End Class
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        CloseButton.Disable(Me)
    End Sub

    Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
        CloseButton.Disable(Me)
    End Sub

End Class