Evenement QueryClose [Résolu]

Messages postés
100
Date d'inscription
lundi 21 février 2005
Dernière intervention
18 février 2009
- - Dernière réponse : fred65200
Messages postés
100
Date d'inscription
lundi 21 février 2005
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
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
88
3
Merci
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#

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_coq
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
88
0
Merci
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#
Commenter la réponse de cs_coq
Messages postés
100
Date d'inscription
lundi 21 février 2005
Dernière intervention
18 février 2009
0
Merci
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.
Commenter la réponse de fred65200
Messages postés
100
Date d'inscription
lundi 21 février 2005
Dernière intervention
18 février 2009
0
Merci
Je me doutais qu'il fallait passer par les Dll.

Mais là c'est du tout cuit.



Merci

Bonne journée
Commenter la réponse de fred65200
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
35
0
Merci
Ohlala tout ce code dès le matin, je
Commenter la réponse de Lutinore
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
35
0
Merci
( bug ) ... je rien du tout : )
Commenter la réponse de Lutinore
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
88
0
Merci
lol

Cocoricoooooooo !!!!
coq
MVP Visual C#
Commenter la réponse de cs_coq
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
35
0
Merci
Oui bha on se moque pas ! : )
Commenter la réponse de Lutinore
Messages postés
100
Date d'inscription
lundi 21 février 2005
Dernière intervention
18 février 2009
0
Merci
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);
Commenter la réponse de fred65200

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.