Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONTROL GROUPBOX A LA MANIERE DU CENTRE DE SECURITE XP SP2


Information sur la source

Catégorie :Graphique Source .NET ( DotNet ) Classé sous : groupbox, onpaint, usercontrol, graphics, arrondis Niveau : Initié Date de création : 17/06/2005 Date de mise à jour : 22/06/2005 10:04:55 Vu / téléchargé: 10 670 / 1 248

Note :
9,23 / 10 - par 13 personnes
9,23 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (37)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
Aimant les "belles" interfaces, je suis en train de me constituer un ensemble de contrôles dont vous avez déjà pu découvrir sur CodeS-SourceS quelques exemples.
Cette fois-ci, je vous présente un GroupBox qui s'inspire de celui du Centre de Sécurité de Windows XP SP2.

Le code n'est pas très compliqué, tout se passe en fait dans l'override de la méthode OnPaint.
Vous pourrez ainsi découvrir comment dessiner un rectangle avec les bords arrondis, affiché des images, des icônes, calculer la taille d'un texte, gérer les évènements souris...
 

Conclusion

Merci pour vos commentaires
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   TestXPGroupBox
    •   TestXPGroupBox
      •   bin
        •   Debug
          • TestXPGroupBox.exeTélécharger ce fichier [Réservé aux membres club]49 152 octets
          • TestXPGroupBox.pdbTélécharger ce fichier [Réservé aux membres club]15 872 octets
          • vbMaf.Windows.Forms.XPGroupBox.dllTélécharger ce fichier [Réservé aux membres club]32 768 octets
          • vbMaf.Windows.Forms.XPGroupBox.pdbTélécharger ce fichier [Réservé aux membres club]28 160 octets
      •   obj
        •   Debug
          • temp
          • TempPE
          • TestXPGroupBox.exeTélécharger ce fichier [Réservé aux membres club]49 152 octets
          • TestXPGroupBox.Form1.resourcesTélécharger ce fichier [Réservé aux membres club]29 308 octets
          • TestXPGroupBox.pdbTélécharger ce fichier [Réservé aux membres club]15 872 octets
          • TestXPGroupBox.projdataTélécharger ce fichier [Réservé aux membres club]14 344 octets
      • App.icoTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 078 octets
      • AssemblyInfo.csTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 598 octets
      • Form1.csTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 992 octets
      • Form1.resxTélécharger ce fichier [Réservé aux membres club]Voir ce fichier43 781 octets
      • TestXPGroupBox.csprojTélécharger ce fichier [Réservé aux membres club]Voir ce fichier5 027 octets
      • TestXPGroupBox.csproj.userTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 804 octets
    •   XPGroupBox
      •   bin
        •   Debug
          • vbMaf.Windows.Forms.XPGroupBox.dllTélécharger ce fichier [Réservé aux membres club]32 768 octets
          • vbMaf.Windows.Forms.XPGroupBox.pdbTélécharger ce fichier [Réservé aux membres club]28 160 octets
      •   obj
        •   Debug
          • temp
          • TempPE
          • vbMaf.Windows.Forms.XPGroupBox.dllTélécharger ce fichier [Réservé aux membres club]32 768 octets
          • vbMaf.Windows.Forms.XPGroupBox.pdbTélécharger ce fichier [Réservé aux membres club]28 160 octets
          • vbMaf.Windows.Forms.XPGroupBox.resourcesTélécharger ce fichier [Réservé aux membres club]9 931 octets
          • XPGroupBox.projdataTélécharger ce fichier [Réservé aux membres club]21 384 octets
      • AssemblyInfo.csTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 598 octets
      • XPGroupBox.csTélécharger ce fichier [Réservé aux membres club]Voir ce fichier12 783 octets
      • XPGroupBox.csprojTélécharger ce fichier [Réservé aux membres club]Voir ce fichier4 700 octets
      • XPGroupBox.csproj.userTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 803 octets
      • XPGroupBox.resxTélécharger ce fichier [Réservé aux membres club]Voir ce fichier18 128 octets
    • TestXPGroupBox.slnTélécharger ce fichier [Réservé aux membres club]Voir ce fichier1 440 octets
    • TestXPGroupBox.suoTélécharger ce fichier [Réservé aux membres club]9 216 octets

Télécharger le zip

Historique

22 juin 2005 10:04:55 :
Correction de la gestion du DisplayRectangle

Commentaires et avis

signaler à un administrateur
Commentaire de Bidou le 17/06/2005 14:04:32 administrateur CS

Bien fait, et pas trop compliqué ! Ca mérite une bonne note :-)
Sinon quand tu fais :

[Browsable(false)]
public new Image BackgroundImage
{
   get { return null; }
}

C'est en quelque sorte pour supprimer la méthode qui est héritée de GroupBox ? Je me suis déjà posée cette question : comment faire quand on hérite d'un object et qu'une property ou méthode n'est pas utile (on ne peux pas pas la supprimer) !?

signaler à un administrateur
Commentaire de sebmafate le 17/06/2005 14:08:08 administrateur CS

bah... en fait, j'ai toujours fais comme cela... il y a surement plus simple :D

signaler à un administrateur
Commentaire de RMI le 17/06/2005 14:11:59

Trés joli, bien fait. (chapeau bas)
De plus je ne connaissais pas le controle PropertyGrid !
Est ce qu'il existe encore d'autre controle caché comme PropertyGrid dans System.Windows.Form ?

signaler à un administrateur
Commentaire de sebmafate le 17/06/2005 14:16:57 administrateur CS

je ne crois pas... malheureusement :(

signaler à un administrateur
Commentaire de coq le 17/06/2005 19:11:49 administrateur CS

Je ne connais pas non plus d'autre méthode pour "masquer" un membre hérité.

Juste une chose : "EditorBrowsable(EditorBrowsableState.Never)]" te permettras de le masquer de la liste des membres vus par l'Intellisense :-)

[Browsable(false),
EditorBrowsable(EditorBrowsableState.Never)]
public new Image BackgroundImage
{
   get { return null; }
}

signaler à un administrateur
Commentaire de sebmafate le 17/06/2005 19:15:56 administrateur CS

merci coq ;)

signaler à un administrateur
Commentaire de aogie le 20/06/2005 11:14:39

On peut également créer une classe qui dérive de ControlDesigner. Ex : XPGroupeBoxControlDesigner.

"Overrider" la méthode "PreFilterProperties" et ajouter properties.Remove("BackgroundImage");

Il ne reste plus qu'ajouter : [Designer(typeof(XPGroupeBoxControlDesigner))] à la classe "XPGroupeBox".

signaler à un administrateur
Commentaire de sebmafate le 20/06/2005 11:17:51 administrateur CS

merci aogie... c'est plus propre en effet :D

signaler à un administrateur
Commentaire de coq le 20/06/2005 20:56:21 administrateur CS

Faut que je la retienne celle là tiens ^^
Par contre un petit doute : ça agit aussi sur l'intellisense ?

signaler à un administrateur
Commentaire de aogie le 21/06/2005 11:39:29

Tout à fait. La "Fenêtre Propriétés" n'affiche pas la propriété "filtrée".
Nota : la méthode "PreFilterEvents" permet d'agir de même avec les événements.

signaler à un administrateur
Commentaire de coq le 21/06/2005 18:56:36 administrateur CS

Je ne parlais pas de la fenetre propriétés du designer mais de la liste des membres donnée l'Intellisense durant la saisie de code pour une instance de XPGroupeBox.

signaler à un administrateur
Commentaire de aogie le 22/06/2005 08:34:43

Non. Tous les membres apparaissent. Cela n'impacte que le travail en mode "Design".

signaler à un administrateur
Commentaire de sebmafate le 22/06/2005 09:16:54 administrateur CS

donc... il faudra quand même utiliser le bon vieux [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]

signaler à un administrateur
Commentaire de MorpionMx le 30/06/2005 19:43:28 administrateur CS

J'aime bien, simple et efficace, et code facile a comprendre :)

signaler à un administrateur
Commentaire de titwan le 10/08/2005 15:13:48

Probleme Report avec cette DLL

comportement etrange:
si on collapse and expand the groupbox
alors qu'on a DOCKer ces memes groupboxs.

mais sinon tres bon boulot
ca merite au moins un 8/10

signaler à un administrateur
Commentaire de bucherb le 05/09/2005 13:54:53

lol pour masquer un membre hérité, il suffit de mettre "new" devant...... En mettant "private" il le recouvre complètement..

private new string Text{
get{ return "";}
}
par exemple

signaler à un administrateur
Commentaire de coq le 05/09/2005 17:50:00 administrateur CS

heu... tu as essayer ce que tu viens de donner ? :-)

signaler à un administrateur
Commentaire de bucherb le 06/09/2005 09:37:03

Affirmatif

signaler à un administrateur
Commentaire de bucherb le 06/09/2005 09:39:53

Mais cela-dit, pour l'enlever uniquement de la property grid en mode design, il suffit de l'overrider en la marquant not browsable et c'est tout..

[Browsable(false)]
public override Image BackgroundImage
{
   get { return null; }
}

signaler à un administrateur
Commentaire de coq le 06/09/2005 13:02:02 administrateur CS

Personnellement je vois toujours ma propriété publique Text héritée de Control et je peux toujours lui affecter une valeur (sur un contrôle perso Label par exemple)
Une propriété private ne peut pas masquer une propriété publique, par contre elle ne sera disponible qu'a l'intérieur même de la classe.

signaler à un administrateur
Commentaire de dhilowitz le 09/09/2005 21:57:34

Excellent.

signaler à un administrateur
Commentaire de t_barbillon le 14/09/2005 09:26:37

Super source, merci

signaler à un administrateur
Commentaire de bucherb le 14/09/2005 09:58:46

Coq, je parlais de la property grid, pas de l'intellisense :-p

signaler à un administrateur
Commentaire de coq le 15/09/2005 17:54:24 administrateur CS

lol
mon dernier message concernais la version "private", pas l'ajout de l'attribut Browsable  :-)

signaler à un administrateur
Commentaire de DADAPOINTCOM le 05/02/2006 14:24:04

est il possible d'avoir le groupbox ferme a l'ouverture de mon programme, je voudai en avoir 2 ouvert et un de fermé,
si je le ferme a la creation la variable origHeight est de la hauteur de la capsule, comment definir une hauteur d'origine SVP.

j'ai fait le tour un peu mat je bloque.

sinon c'est vraiment un superbe travail de CODEUR.

signaler à un administrateur
Commentaire de LordBob le 18/10/2006 21:44:43

salut, je suis débutant en c#. je voudrais utiliser ton control dans mon application. pour cela j'ai ajouté la dll en reference dans mon projet, mais je n'arrive pas a inserer ton control dans mon dialog.
pourrais-tu m'aider stp, en me disant ce que je dois faire.
merci par avance.

signaler à un administrateur
Commentaire de MorpionMx le 18/10/2006 21:53:25 administrateur CS

LordBob > Regarde simplement comment il a fait dans la petite application d'exemple ;)

signaler à un administrateur
Commentaire de LordBob le 18/10/2006 22:21:33

c'est deja fait, visiblement lui a ajouter le projet de son controle, or moi ce que je voudrais faire c'est seulement faire reference a la DLL.

signaler à un administrateur
Commentaire de MorpionMx le 19/10/2006 08:49:20 administrateur CS

Cela revient au meme ;)
Il te suffit d'ajout la dll en référence au projet.
Ensuite, tu déclares le namespace (using vbMaf.Windows.Forms)
Et finalement

XPGroupBox gbx = new XPGroupBox();
this.Controls.Add(gbx);

Et cela fonctionne.

signaler à un administrateur
Commentaire de sebmafate le 19/10/2006 09:17:08 administrateur CS

vi... c'est ca...
tu compiles le projet du control et tu ajoutes la dll crée à ton projet :)

signaler à un administrateur
Commentaire de LordBob le 19/10/2006 10:19:09

oui ok, seulement y a une petite defférence.
lorsque que l'on spécifie le proje à inclure en reférence, bah on a le controle qui s'ajoute a la liste avec les autres.
seulement quand j'ajoute la dll, je ne peux le faire que en "code", le controle n'est pas rajouter avec les autres.

ma question est donc comment en important la dll, je peux rajouter le controle avec les autres.

signaler à un administrateur
Commentaire de sebmafate le 19/10/2006 10:39:33 administrateur CS

clic droit sur la toolbox... ajouter des composants et sélectionner la dll.

signaler à un administrateur
Commentaire de LordBob le 19/10/2006 10:45:11

ok merci beaucoup ;)

signaler à un administrateur
Commentaire de LordBob le 19/10/2006 21:40:17

salut,
désoler mais j'ai une ultime question. Est ce que ton controle réagit au clique souris? parce que j'ai ajouter une action lors du clique sur ton controle mais rien ne se passe. Donc en fait lors du clique sur ton controle, il m'est impossible de savoir si ce dernier est "rétrécit" ou "agrandit".
Mais peut etre c'est moi qui ne sait pas trop bien m'en servir.
Désoler de te déranger encore et merci par avance.

signaler à un administrateur
Commentaire de LordBob le 22/10/2006 13:17:15

c'est bon oublié ce que j'ai dit. j'ai trouvé par moi meme, c'était tout simple :)
désoler j'ai parlé trop vite.
sinon merci pour vos réponse.

signaler à un administrateur
Commentaire de guromgd le 12/10/2008 09:55:51

Fichtre !

c'est beau @_@, bravo ! (et merci :D)

signaler à un administrateur
Commentaire de DiGiT89 le 26/02/2009 11:09:44 10/10

Haaa j'aime les codes qui m'aident à rendre mes form plus agréables au regard.
Merci à toi !

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

ListView : Ajouter des éléments (C#) [ par Wolf ] Voilà mon problème :Comment faire pour ajouter des éléments dans une ListView pendant l'exécution du programme?J'avais pensé faire ça ds la fonction O Usercontrol et OnKeyPress [ par vbmore ] Je suis en train de crée un UserControl et je n'arrive pas à intercepter les touches Haut, Bas, Gauche, Bas (Elles passent le focus au controle suivan Icone UserControl [ par bucherb ] Hello!Est-ce que quelqu'un saurait comment changer la petite icône d'un UserControl dans le ToolBox du designer, pour avoir autre chose que ce truc tr passage de valeur userControl -> winForm [ par benjamin33 ] BonjourVoila, j'ai un formulaire dans lequel j'insere un userControl (qui contient lui-meme une listbox)J'aimerais recuperer la valeur selectionnée (l Graphics to Bitmap [ par Developpator ] Hello;Je cherche le moyen de sauver dans un fichier *.bmp, le contenu d'un panel, à savoir son objet graphics. Merci d'avance. dessiner un rectangle sur les controles [ par LeGnuff ] Bonjour !j'ai un objget Graphics associé à une formj'aurais aimé savoir s'il y avait un moyen d'utiliser la méthodeGraphics.DrawRectangle(...) en fais Graphics et controls [ par michel_roger ] Salut tlm,Je suis en train de créer une sorte de tooltip avec ce code : Graphics help = this.CreateGraphics();Brush brush = System.Drawing.Brushes.Bla [Winform] [UserControl] référence à la form [ par stailer ] Bonjour tout le monde,Je suis en train de programmer un UserControl visuel à poser sur une form.Le problème, c'est que ce controle doit "paramétrer" a UserControl et Event... [ par bigflo ] Salut à tous...Voila, je voudrais faire mon propre UserControl. Mais j'ai un petit souci vis-àvis des évenements Click et DoubleClick.Je n'arrive pas scrollbar et usercontrol [ par bigflo ] Salut,Je réalise mon propre controle. Mais je n'arrive pas à faire apparaitre les scrollbars...Ya bien une propriété AutoScroll, mais apparement, je n


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,562 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.