473,372 Members | 1,039 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,372 software developers and data experts.

How to remove or disable Close (X)-button of the Form?

Customer wants the Close (X)-button of the forms top right corner to be
Disabled or removed from Windows Form-application, which is made using
VB.NET, but leave MinimizeBox and MaximizeBox.

I think this is not so clever to do like this way, but have to do like
customer wants - so how to do this? It seems to be not just like
changing property like with MinimizeBox and MaximizeBox. Any succestions?

--
Thanks in advance!

Mika
Nov 21 '05 #1
12 65403
Mika,

When you are sure your users wants it and you are not distributing the
program too others, (because otherwise you will most probably directly be
confrontated with bug reports which are probably justifiable correct) you
can just use the closing event and set in that e.cancel = true (or false I
always am in doubt about the last just try).

I would in your situation let the user sign a contract that he wanted this.
What you can do as well is showing in a the messagebox from the clossing
event that this is by order from your client disabled. (A little more polite
however not to misunderstand text than of course).

Instead of that all you can as well overpaint the X (and keep the cancel)
however that will be a lot more work.

I hope this helps?

Cor
Nov 21 '05 #2
#Region " Windows Form Designer generated code "

'disables close
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
Const CS_NOCLOSE As Integer = &H200
cp.ClassStyle = cp.ClassStyle Or CS_NOCLOSE
Return cp
End Get
End Property
"Mika M" wrote:
Customer wants the Close (X)-button of the forms top right corner to be
Disabled or removed from Windows Form-application, which is made using
VB.NET, but leave MinimizeBox and MaximizeBox.

I think this is not so clever to do like this way, but have to do like
customer wants - so how to do this? It seems to be not just like
changing property like with MinimizeBox and MaximizeBox. Any succestions?

--
Thanks in advance!

Mika

Nov 21 '05 #3
Mark,

Nice, I never saw this one before (is now in my snippets)

Thanks

Cor
Nov 21 '05 #4
"Mika M" <mahmik_nospam@removethis_luukku.com> schrieb:
Customer wants the Close (X)-button of the forms top right corner to be
Disabled or removed from Windows Form-application, which is made using
VB.NET, but leave MinimizeBox and MaximizeBox.


Add this to your form:

\\\
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
Const CS_DBLCLKS As Int32 = &H8
Const CS_NOCLOSE As Int32 = &H200
cp.ClassStyle = CS_DBLCLKS Or CS_NOCLOSE
Return cp
End Get
End Property
///

Alternatively you can remove the according menu items from the system
menu using p/invoke.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>
Nov 21 '05 #5
> #Region " Windows Form Designer generated code "

'disables close
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
Const CS_NOCLOSE As Integer = &H200
cp.ClassStyle = cp.ClassStyle Or CS_NOCLOSE
Return cp
End Get
End Property


Thanks Mark! Seems to work like I need!

--
Mika
Nov 21 '05 #6
I had quite a discussion about this in GotDotNet a few months back:
http://www.gotdotnet.com/Community/M...&Page=1#248801

If you never want the Close Button to show then use the CreateParams method,
but if you want to toggle the state of the close button then this method is
no good, you will instead have to modify the Window Menu.

--
Mick Doherty
http://dotnetrix.co.uk/nothing.html
"Cor Ligthert" <no************@planet.nl> wrote in message
news:%2****************@tk2msftngp13.phx.gbl...
Mika,

When you are sure your users wants it and you are not distributing the
program too others, (because otherwise you will most probably directly be
confrontated with bug reports which are probably justifiable correct) you
can just use the closing event and set in that e.cancel = true (or false I
always am in doubt about the last just try).

I would in your situation let the user sign a contract that he wanted
this. What you can do as well is showing in a the messagebox from the
clossing event that this is by order from your client disabled. (A little
more polite however not to misunderstand text than of course).

Instead of that all you can as well overpaint the X (and keep the cancel)
however that will be a lot more work.

I hope this helps?

Cor

Nov 21 '05 #7
....and I thought you were always paying attention ;)

--
Mick Doherty
http://dotnetrix.co.uk/nothing.html
"Cor Ligthert" <no************@planet.nl> wrote in message
news:OJ**************@TK2MSFTNGP09.phx.gbl...
Mark,

Nice, I never saw this one before (is now in my snippets)

Thanks

Cor

Nov 21 '05 #8
Mick,

When I saw your article I thought I have to say Sorry Sorry Sorry however
you gave me the change here.

Until now I thought that I had seen only awfull painting solutions, because
this simple one I would have remembered me I thought.

Again Sorry Sorry Sorry

:-)))

Cor
Nov 21 '05 #9
No need to apologise. I just couldn't believe you hadn't seen it before
since it's been here several times in the past and I'm almost positive that
you've read every message since you started interacting with the group. By
the amount of responses you give it certainly looks that way.

--
Mick Doherty
http://dotnetrix.co.uk/nothing.html
"Cor Ligthert" <no************@planet.nl> wrote in message
news:un**************@TK2MSFTNGP10.phx.gbl...
Mick,

When I saw your article I thought I have to say Sorry Sorry Sorry however
you gave me the change here.

Until now I thought that I had seen only awfull painting solutions,
because this simple one I would have remembered me I thought.

Again Sorry Sorry Sorry

:-)))

Cor

Nov 21 '05 #10
Declarations:

Private Declare Function GetSystemMenu Lib "user32" Alias
"GetSystemMenu" (ByVal hwnd As Integer, ByVal bRevert As Integer) As Integer
Private Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu"
(ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer)
As Integer

Private Const MF_BYPOSITION As Integer = &H400&
Put this in form load:

DeleteMenu(iMenu, 6, MF_BYPOSITION) ' Disable the 'X' (Control Box)
DeleteMenu(iMenu, 5, MF_BYPOSITION) ' Remove the seperator bar

The above will disable your ControlBox for you

"Herfried K. Wagner [MVP]" wrote:
"Mika M" <mahmik_nospam@removethis_luukku.com> schrieb:
Customer wants the Close (X)-button of the forms top right corner to be
Disabled or removed from Windows Form-application, which is made using
VB.NET, but leave MinimizeBox and MaximizeBox.


Add this to your form:

\\\
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
Const CS_DBLCLKS As Int32 = &H8
Const CS_NOCLOSE As Int32 = &H200
cp.ClassStyle = CS_DBLCLKS Or CS_NOCLOSE
Return cp
End Get
End Property
///

Alternatively you can remove the according menu items from the system
menu using p/invoke.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Nov 21 '05 #11
"Crouchie1998" <Cr**********@discussions.microsoft.com> schrieb:
Private Declare Function GetSystemMenu Lib "user32" Alias
"GetSystemMenu" (ByVal hwnd As Integer, ByVal bRevert As Integer) As
Integer
Private Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu"
(ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As
Integer)
As Integer

Private Const MF_BYPOSITION As Integer = &H400&
Put this in form load:

DeleteMenu(iMenu, 6, MF_BYPOSITION) ' Disable the 'X' (Control Box)
DeleteMenu(iMenu, 5, MF_BYPOSITION) ' Remove the seperator bar

The above will disable your ControlBox for you


ACK. I have published a similar solution on my website some time ago
(<URL:http://dotnet.mvps.org/dotnet/code/windowsandforms/#NoClose>), but I
prefer the 'CreateParams' solution.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Nov 21 '05 #12
I first used the above solution in VB 6, but 2 years ago when I moved to
VB.NET I charged the code accordingly.

"Herfried K. Wagner [MVP]" wrote:
"Crouchie1998" <Cr**********@discussions.microsoft.com> schrieb:
Private Declare Function GetSystemMenu Lib "user32" Alias
"GetSystemMenu" (ByVal hwnd As Integer, ByVal bRevert As Integer) As
Integer
Private Declare Function DeleteMenu Lib "user32" Alias "DeleteMenu"
(ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As
Integer)
As Integer

Private Const MF_BYPOSITION As Integer = &H400&
Put this in form load:

DeleteMenu(iMenu, 6, MF_BYPOSITION) ' Disable the 'X' (Control Box)
DeleteMenu(iMenu, 5, MF_BYPOSITION) ' Remove the seperator bar

The above will disable your ControlBox for you


ACK. I have published a similar solution on my website some time ago
(<URL:http://dotnet.mvps.org/dotnet/code/windowsandforms/#NoClose>), but I
prefer the 'CreateParams' solution.

--
M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Nov 21 '05 #13

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Phil | last post by:
Hello all, Can anybody give me any ideas on how to disable a tab page within a tab control. I have a tab control tabClients with 3 pages. I would like to disable pages 2 & 3 when a certain...
8
by: Matt | last post by:
Hi everyone I was wondering if there was a way to disable a single database with having to shutdown mysql or rename tables? Thanks, Matt
3
by: bobdydd | last post by:
Hi Everybody On Report Preview Does anyone know of a way to disable the Minimum, Maximum and Close buttons, so that the user cannot close by any other means that the Toolbar button that I have...
6
by: ron | last post by:
1. Can I disable a user control in a web page? 2. Can I disable the 'close' function on the top-right corner of a popup window, so I can use code-behind function to close the browser?
5
by: Jonas | last post by:
I want to remove a remote access connection when a user logs out. The connection is a dial up isdn adapter. I can access the adapter via WMI namespace \root\microsoft\homenet, but i donīt find...
3
by: =?Utf-8?B?bWFydGluMQ==?= | last post by:
Hi, All, I use vb 2005 to create window app, and try to disable close button/item on the top right coner of window, can anyone can help this out? Thanks for yuor time, Martin
0
by: Garg | last post by:
When you place your mouse over the calendar object in the events module it displays a tooltip that says "Calendar". Does anyone know how to remove/disable this tooltip?
9
by: Laurent ARNAL | last post by:
Hi, I would like to know if there is a way to remove/disable .php handler when the request come from a specific Browser. I ask this because I use dreamweaver / webdav to edit my .php files....
6
by: DhananjayPatki | last post by:
Hello, I wnat the code , how to disable the Close(x) icon script using java script . is there any event that can be used to prompt the user before closing the new window.
0
by: =?iso-8859-1?B?S2VyZW0gR/xtcvxrY/w=?= | last post by:
Hi, how can i remove/disable the tray icon for the started Express Edition from the system tray. Te icon directs me to the express editons website after clicking on it. I dont want these tray...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.