Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Disabling/Enabling close button on a form

1 view
Skip to first unread message

Marco Castro

unread,
Dec 18, 2003, 3:19:43 PM12/18/03
to
How can I disable and then re-enable the close button on a form? Thanks.


Armin Zingler

unread,
Dec 18, 2003, 3:26:24 PM12/18/03
to
"Marco Castro" <marco_do...@benlan.com> schrieb

> How can I disable and then re-enable the close button on a form?
> Thanks.

Set the enabled property.


--
Armin

http://www.plig.net/nnq/nquote.html
http://www.netmeister.org/news/learn2quote.html

Herfried K. Wagner [MVP]

unread,
Dec 18, 2003, 5:08:32 PM12/18/03
to
* "Marco Castro" <marco_do...@benlan.com> scripsit:

> How can I disable and then re-enable the close button on a form? Thanks.

Set its 'Enabled' property...

--
Herfried K. Wagner [MVP]
<http://www.mvps.org/dotnet>

Armin Zingler

unread,
Dec 18, 2003, 5:19:08 PM12/18/03
to
"Herfried K. Wagner [MVP]" <hirf-spa...@gmx.at> schrieb
> Set its 'Enabled' property...

*grrrrrrr*

Herfried K. Wagner [MVP]

unread,
Dec 18, 2003, 6:09:08 PM12/18/03
to
* "Armin Zingler" <az.n...@freenet.de> scripsit:

>> Set its 'Enabled' property...
>
> *grrrrrrr*

Sorry...

Cor

unread,
Dec 19, 2003, 3:11:51 AM12/19/03
to
Hi Marco,

If you mean the default close X than you can set the controlbox from the
form to false,
you disable than also the posibility to minimize and maximize.
I did not see something as minimize = false if you are looking for that.

I hope this helps?

Cor
..

Herfried K. Wagner [MVP]

unread,
Dec 19, 2003, 7:38:39 AM12/19/03
to
* "Cor" <n...@non.com> scripsit:

> If you mean the default close X than you can set the controlbox from the
> form to false,
> you disable than also the posibility to minimize and maximize.
> I did not see something as minimize = false if you are looking for that.

It's even possible to /disable/ the button, but I don't know how to
enable it:

\\\
Private Declare Function GetSystemMenu Lib "user32.dll" ( _
ByVal hWnd As IntPtr, _
ByVal bRevert As Int32 _
) As IntPtr

Private Declare Function GetMenuItemCount Lib "user32.dll" ( _
ByVal hMenu As IntPtr _
) As Int32

Private Declare Function DrawMenuBar Lib "user32.dll" ( _
ByVal hWnd As IntPtr _
) As Int32

Private Declare Function RemoveMenu Lib "user32.dll" ( _
ByVal hMenu As IntPtr, _
ByVal nPosition As Int32, _
ByVal wFlags As Int32 _
) As Int32

Private Const MF_BYPOSITION As Int32 = &H400
Private Const MF_REMOVE As Int32 = &H1000

Private Sub RemoveCloseButton(ByVal frmForm As Form)
Dim hMenu As IntPtr, n As Int32
hMenu = GetSystemMenu(frmForm.Handle, 0)
If Not hMenu.Equals(IntPtr.Zero) Then
n = GetMenuItemCount(hMenu)
If n > 0 Then
RemoveMenu(hMenu, n - 1, MF_BYPOSITION Or MF_REMOVE)
RemoveMenu(hMenu, n - 2, MF_BYPOSITION Or MF_REMOVE)
DrawMenuBar(frmForm.Handle)
End If
End If
End Sub
///

DaveJG

unread,
Jan 8, 2004, 6:31:26 PM1/8/04
to
Below is some code I found in a different thread. Doesn't disable the
close-x, but simulates the VB6 queryunload unloadmode parameter.

Gary,

The code below effectively disables a form's close button.

HTH.

Danny L. Joe

----------------------------------
Private CloseButtonClicked As Boolean = False

Private Sub MyForm_Closing(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If Me.CloseButtonClicked = True Then
Me.CloseButtonClicked = False 'reset close button detector
e.Cancel = True
Return
End If
End Sub

Protected Overrides Sub WndProc(ByRef m As
System.Windows.Forms.Message)
If m.Msg = WM_SYSCOMMAND AndAlso m.WParam.ToInt32 = SC_CLOSE Then
Me.CloseButtonClicked = True
End If
MyBase.WndProc(m)
End Sub

0 new messages