Kezdőlap > Kategorizálatlan > Az X bezáró gomb letiltása

Az X bezáró gomb letiltása

2008. december 28. vasárnap Hozzászólás Go to comments

Nemrég belefutottam egy olyan apró problémába, hogy az egyik projektnél lekellet tiltanom azt, hogy a felhasználó az X bezáró gombra kattintson és zárja be az alkalmazást. (Nem lehetet használni a FormClose esemenyt egyéb okokból kifolyólag)  Sajnos se propertyt se metódust nem találtam amivel ezt megtudnám csinálni.  Így néhány perc keresgélés után, egy unmanagedes megoldást találtam. Ami az alábbiak szerint működik.image

Szükség lesz a System.Runtime.InteropServices névtérre.

using System.Runtime.InteropServices

Deklarálnunk kell az alábbiakat:

const int MF_BYPOSITION = 0x400;
[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);

Valamint, például a FormLoad eseménybe hivjuk meg az alabbi metódusokat.

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

Kategóriák:Kategorizálatlan
  1. Még nincs hozzászólás.
  1. No trackbacks yet.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: