Evenement QueryClose [Résolu]

Signaler
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009
-
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009
-
Bonjour à tous,



Existe t il un evenement qui controle la croix de fermeture du form.

Du Style



private void Form1_QueryClose(object sender, System.ComponentModel.CancelEventArgs e)

{

e.Cancel = true;

}



merci
A voir également:

9 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
J'avais mal lu la question en fait lol
Windows Forms - Disable the Close Button
Sur ce blog tu trouveras le code suivant :

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace DisableCloseBtn
{
/// <summary>
/// This class was taken from the following web site:
///
/// http://addressof.com/blog/articles/232.aspx
///
/// Written by Cory Smith in VB. I translated it to C#
/// </summary>
public class CloseButton
{
#region Interop Code

private const int SC_CLOSE=0xF060;
private const int MF_BYCOMMAND=0x0;
private const int MF_GRAYED=0x1;
private const int MF_ENABLED=0x0;

[DllImport("user32.dll", SetLastError = true)]
private static extern int GetSystemMenu(IntPtr hWnd, int revert);

[DllImport("user32.dll", SetLastError = true)]
private static extern int EnableMenuItem(int menu, int ideEnableItem, int enable);

#endregion

public static void Disable(Form form)
{
IntPtr hWnd = form.Handle;
int SystemMenu = GetSystemMenu(hWnd,0);
int PreviousState = EnableMenuItem(SystemMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
if(PreviousState == -1)
throw new Exception("The close menu does not exist");
}
}
}

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
Salut,

Form.Closing est déclenché avant la fermeture.
Form.Closed est déclenché après la fermeture.

Celui qui correspond à ton exemple est Closing.

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009

Merci coq,



mais je cherche uniquement le blocage de croix de fermeture.

le form closing empeche toute façon de fermer le Form.



Encore merci pour le SystemRestore.
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009

Je me doutais qu'il fallait passer par les Dll.

Mais là c'est du tout cuit.



Merci

Bonne journée
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Ohlala tout ce code dès le matin, je
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
( bug ) ... je rien du tout : )
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
93
lol

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
39
Oui bha on se moque pas ! : )
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009

On peut aussi utiliser



[DllImport("User32.dll")]

public static extern bool DeleteMenu(int hMenu, int uPosition, int uFlags);



bool PreviousState = DeleteMenu(SystemMenu, SC_CLOSE , MF_BYCOMMAND);