Fermeture d'une form avec la croix [Résolu]

Messages postés
40
Date d'inscription
lundi 18 février 2002
Dernière intervention
5 novembre 2012
- - Dernière réponse : CSharpJSharp
Messages postés
98
Date d'inscription
samedi 17 septembre 2005
Dernière intervention
24 mai 2010
- 26 avril 2010 à 12:48
Bonjour

j'ai une form qui a été crée et je voudrais desactiver la croix rouge en haut à droite pour fermer.
Comment faire pour soit faire disparaître cette croix, ou alors comment puis-je placer du code lorsuqe l'on clique dessus?

D'avance merci
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
357
Date d'inscription
jeudi 8 juin 2006
Dernière intervention
26 décembre 2011
1
Merci
Salut,
Tu as la propriété ControlBox. Si tu l'a met à false tu n'a affiche plus les 3 petits boutons:
Close , Maximize et Minimize.

L'event FormClosing se déclenche  lorsque tu clique sur le bouton "Croix".
La fenêtre n'est pas encore fermée et tu peut annuler l'action avec e.Cancel = true.

L'event FormClosed. La fenêtre est fermé et tu peux savoir pourquoi en accédant à e.CloseReason.

A+

Merci xmox667 1

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

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de xmox667
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
0
Merci
Argh !

J'ai fait quelque chose d'autre pendant que je répondais...

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
Messages postés
98
Date d'inscription
samedi 17 septembre 2005
Dernière intervention
24 mai 2010
0
Merci
C'est un vieux sujet certe, mais c'est toujours utile de poster une autre astuce.

public class LaFormADesactiverLaCroix : Form

{
private const int CROIX = 0x0200;

protected override CreateParams CreateParams
{
get
{
CreateParams createParams = base.CreateParams;
createParams.ClassStyle |= CROIX;
return createParams;
}
}
}
Commenter la réponse de CSharpJSharp
Messages postés
1025
Date d'inscription
mardi 4 février 2003
Dernière intervention
7 juin 2010
-1
Merci
Hello,

Tu as deux solutions :

- Mettre la propriété ControlBox de ta Form à false, mais ça enlève aussi les bouton pour maximiser et minimiser la form.
- Regarde du côté de l'event FormClosing pour capturer la fermeture de ta form, et, le cas échaéant, annuler cette fermeture :

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
   if (MessageBox.Show("Etes-vous certain de vouloir quitter ?", "Quitter", MessageBoxButtons.YesNo) == DialogResult.No)
        e.Cancel = true;
}

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Commenter la réponse de SharpMao
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Dernière intervention
20 juin 2013
-1
Merci
Si pas besoin de confirmation, juste désactiver le button, c'est probablement plus propre via API

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);


private void Form_Load(object sender, EventArgs e)


{
        IntPtr hMenu = GetSystemMenu(this.Handle, false);
        int menuItemCount = GetMenuItemCount(hMenu);
        RemoveMenu(hMenu, menuItemCount - 1, MF_BYPOSITION);
}








<hr />
-My Blog-
Commenter la réponse de cs_Bidou

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.