Доступность крестика (закрытие формы) - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток. Есть код, который скрывает крестик (закрытие формы)
как сделать что бы при нажатии на кнопку крестик был доступен, при нажатии на другую кнопку, не доступен?

Решение задачи: «Доступность крестика (закрытие формы)»

textual
Листинг программы
Public Class Form1
 
    Public Property CloseEnabled() As Boolean
        Get
            Return mCloseEnabled
        End Get
        Set(ByVal value As Boolean)
            If value <> mCloseEnabled Then
                mCloseEnabled = value
                setSystemMenu()
            End If
        End Set
    End Property
    Private mCloseEnabled As Boolean = True
 
    Protected Overrides Sub OnHandleCreated(ByVal e As System.EventArgs)
        MyBase.OnHandleCreated(e)
        setSystemMenu()
    End Sub
 
    Private Sub setSystemMenu()
        Dim menu As IntPtr = GetSystemMenu(Me.Handle, False)
        Dim enable As Integer
        If Not mCloseEnabled Then enable = 1
        EnableMenuItem(menu, SC_CLOSE, enable)
    End Sub
 
    '' P/Invoke 
    Private Const SC_CLOSE As Integer = &HF060
    Private Declare Function GetSystemMenu Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal revert As Boolean) As IntPtr
    Private Declare Function EnableMenuItem Lib "user32.dll" (ByVal hMenu As IntPtr, ByVal IDEnableItem As Integer, ByVal wEnable As Integer) As Integer
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        mCloseEnabled = False
        setSystemMenu()
    End Sub
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        mCloseEnabled = True
        setSystemMenu()
    End Sub
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы