Vi siete mai chiesti se è possibile disabilitare la chiusura del form?

E se disabilitare il MinimizeBox ed il MaximizeBox non bastasse ecco il rimedio che fà per voi per impedire Allutente di chiudere il form.

 

Per prima cosa occorre importare la libreria che ci permette di lavorare sulle WinApi.

 

using System.Runtime.InteropServices;

 

 

 

Dichiariamo le varibili necessarie per eseguire loperazione.

 

private const int MF_BYPOSITION = 0×400;
[DllImport("User32")]
private static extern int RemoveMenu(IntPtr hMenu, int nPosition, int wFlags);
[DllImport("User32")]
private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
[DllImport("User32")]
private static extern int GetMenuItemCount(IntPtr hWnd);

 

Ora semplicemente allavvio del del form o tramite un pulsate in debug o semplicemente a RunTime. Possiamo disabilitare il Pulsante X chiamando questa funzione.

 

private void Form1_Load(object sender, EventArgs e)
{
IntPtr hMenu = GetSystemMenu(this.Handle, false);
int menuItemCount = GetMenuItemCount(hMenu);
RemoveMenu(hMenu, menuItemCount  1, MF_BYPOSITION);
}

 

 

immaginesf.png

 

Con questo sistema possiamo eliminare quasi qualsiasi controllo o pulsante sia nel nostro programma che in altri programmi, semplicemente andando a recuperare lhandle di una finestra ed eseguire la medesima funzione su di essa. oppure anche aggiungere altri pulsanti

Ricordate di visitare il mio blog :)

http://thejuster.makingitalia.com/