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

cs_arb 40 Messages postés lundi 18 février 2002Date d'inscription 5 novembre 2012 Dernière intervention - 14 oct. 2008 à 08:27 - Dernière réponse : CSharpJSharp 98 Messages postés samedi 17 septembre 2005Date d'inscription 24 mai 2010 Dernière intervention
- 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 

5 réponses

Répondre au sujet
xmox667 357 Messages postés jeudi 8 juin 2006Date d'inscription 26 décembre 2011 Dernière intervention - 14 oct. 2008 à 09:09
+1
Utile
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+
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de xmox667
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 14 oct. 2008 à 09:21
0
Utile
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
CSharpJSharp 98 Messages postés samedi 17 septembre 2005Date d'inscription 24 mai 2010 Dernière intervention - 26 avril 2010 à 12:48
0
Utile
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
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 14 oct. 2008 à 14:24
-1
Utile
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
SharpMao 1025 Messages postés mardi 4 février 2003Date d'inscription 7 juin 2010 Dernière intervention - 14 oct. 2008 à 09:20
-2
Utile
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

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.