Evenement QueryClose

Résolu
fred65200
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009
- 11 juil. 2005 à 05:42
fred65200
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009
- 11 juil. 2005 à 08:32
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

9 réponses

cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
11 juil. 2005 à 07:49
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#
3
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
11 juil. 2005 à 07:40
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#
0
fred65200
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009

11 juil. 2005 à 07:42
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.
0
fred65200
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009

11 juil. 2005 à 07:52
Je me doutais qu'il fallait passer par les Dll.

Mais là c'est du tout cuit.



Merci

Bonne journée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
11 juil. 2005 à 07:55
Ohlala tout ce code dès le matin, je
0
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
11 juil. 2005 à 07:56
( bug ) ... je rien du tout : )
0
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
11 juil. 2005 à 08:08
lol

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
11 juil. 2005 à 08:09
Oui bha on se moque pas ! : )
0
fred65200
Messages postés
100
Date d'inscription
lundi 21 février 2005
Statut
Membre
Dernière intervention
18 février 2009

11 juil. 2005 à 08:32
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);
0