begin process at 2008 07 21 03:33:21
1 213 565 membres
33 nouveaux aujourd'hui
14 167 membres club

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 !

USERCONTROL PYROWINDOW


Information sur la source

Catégorie :Divers Source .NET ( DotNet ) Classé sous : UserControl, Control, Window, Fenêtre Niveau : Débutant Date de création : 06/11/2007 Date de mise à jour : 07/11/2007 22:14:16 Vu / téléchargé: 3 350 / 91

Note :
Aucune note

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

Description

Je me suis amusé à copier le style de fenêtre d'un programme et je me suis dit que me faire un contrôle serai parfait et rapide par la suite pour mes applications suivantes!

Ce n'est pas très proprement nommé dans les propriétés mais de ce côté c'est pas mon truc :D

Il vous suffit pour l'utiliser, de:
- copier les trois fichiers dans le répertoire de votre application,
   ("PyroWindow.cs","PyroWindow.Designer.cs","PyroWindow.resx")
- et de l'ajouter "PyroWindow.cs" à votre projet tout simplement!

(Vous retrouverez le contrôle dans Custom Components)

Source

  • // Pour ce qui est des boutons de fenêtre (réduire/agrandir/fermer),
  • // Vous pouvez les activés facilement en suivant le code ci-dessous.
  • // Voici comment avoir l'évènement afin d'utiliser ceci (simple clique):
  • Exemple du contrôle ::
  • //
  • // pyroWindow1
  • //
  • this.pyroWindow1.BackColor = System.Drawing.Color.Transparent;
  • this.pyroWindow1.FondColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
  • this.pyroWindow1.IconImage = ((System.Drawing.Image)(resources.GetObject("pyroWindow1.IconImage")));
  • this.pyroWindow1.Location = new System.Drawing.Point(12, 12);
  • this.pyroWindow1.Name = "pyroWindow1";
  • this.pyroWindow1.OmbreColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(140)))), ((int)(((byte)(140)))));
  • this.pyroWindow1.Size = new System.Drawing.Size(260, 91);
  • this.pyroWindow1.TabIndex = 0;
  • this.pyroWindow1.Titre = "Titre de la fenêtre";
  • this.pyroWindow1.TitreAlign = System.Drawing.ContentAlignment.MiddleCenter;
  • this.pyroWindow1.TitreColor = System.Drawing.Color.White;
  • this.pyroWindow1.TitreFont = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
  • this.pyroWindow1.TitreImage = ((System.Drawing.Image)(resources.GetObject("pyroWindow1.TitreImage")));
  • this.pyroWindow1.TitreLayout = System.Windows.Forms.ImageLayout.Tile;
  • this.pyroWindow1.VisibleAgrandir = true;
  • this.pyroWindow1.VisibleFermer = true;
  • this.pyroWindow1.VisibleIcon = true;
  • this.pyroWindow1.VisibleReduire = true;
  • this.pyroWindow1.ReduireClick += new System.EventHandler(this.PyroWindow_ReduireClick);
  • this.pyroWindow1.AgrandirClick += new System.EventHandler(this.PyroWindow_AgrandirClick);
  • this.pyroWindow1.FermerClick += new System.EventHandler(this.PyroWindow_FermerClick);
  • // Les seules lignes qui nous intéresse sont les trois dernières
  • // Il vous fait les copier comme sur cet exemple à la fin des propriétés du contrôle
  • // Prenez seulement celles qui vous sont utile!
  • Voici maintenant les "void" ::
  • private void PyroWindow_ReduireClick(object sender, EventArgs e)
  • {
  • // Lors du clique sur l'icône de diminution!
  • }
  • private void PyroWindow_AgrandirClick(object sender, EventArgs e)
  • {
  • // Lors du clique sur l'icône de maximisation!
  • }
  • private void PyroWindow_FermerClick(object sender, EventArgs e)
  • {
  • // Lors du clique sur l'icône de fermeture!
  • }
  • // Mettez ceci avec le reste des "void",
  • // Pour ceci aussi, prenez seulement le nécessaire.
// Pour ce qui est des boutons de fenêtre (réduire/agrandir/fermer),
// Vous pouvez les activés facilement en suivant le code ci-dessous.
// Voici comment avoir l'évènement afin d'utiliser ceci (simple clique):

Exemple du contrôle ::

// 
// pyroWindow1
// 
this.pyroWindow1.BackColor = System.Drawing.Color.Transparent;
this.pyroWindow1.FondColor = System.Drawing.Color.FromArgb(((int)(((byte)(80)))), ((int)(((byte)(80)))), ((int)(((byte)(80)))));
this.pyroWindow1.IconImage = ((System.Drawing.Image)(resources.GetObject("pyroWindow1.IconImage")));
this.pyroWindow1.Location = new System.Drawing.Point(12, 12);
this.pyroWindow1.Name = "pyroWindow1";
this.pyroWindow1.OmbreColor = System.Drawing.Color.FromArgb(((int)(((byte)(140)))), ((int)(((byte)(140)))), ((int)(((byte)(140)))));
this.pyroWindow1.Size = new System.Drawing.Size(260, 91);
this.pyroWindow1.TabIndex = 0;
this.pyroWindow1.Titre = "Titre de la fenêtre";
this.pyroWindow1.TitreAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.pyroWindow1.TitreColor = System.Drawing.Color.White;
this.pyroWindow1.TitreFont = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.pyroWindow1.TitreImage = ((System.Drawing.Image)(resources.GetObject("pyroWindow1.TitreImage")));
this.pyroWindow1.TitreLayout = System.Windows.Forms.ImageLayout.Tile;
this.pyroWindow1.VisibleAgrandir = true;
this.pyroWindow1.VisibleFermer = true;
this.pyroWindow1.VisibleIcon = true;
this.pyroWindow1.VisibleReduire = true;
this.pyroWindow1.ReduireClick += new System.EventHandler(this.PyroWindow_ReduireClick);
this.pyroWindow1.AgrandirClick += new System.EventHandler(this.PyroWindow_AgrandirClick);
this.pyroWindow1.FermerClick += new System.EventHandler(this.PyroWindow_FermerClick);

// Les seules lignes qui nous intéresse sont les trois dernières
// Il vous fait les copier comme sur cet exemple à la fin des propriétés du contrôle
// Prenez seulement celles qui vous sont utile!

Voici maintenant les "void" ::

private void PyroWindow_ReduireClick(object sender, EventArgs e)
{
	// Lors du clique sur l'icône de diminution!
}

private void PyroWindow_AgrandirClick(object sender, EventArgs e)
{
	// Lors du clique sur l'icône de maximisation!
}

private void PyroWindow_FermerClick(object sender, EventArgs e)
{
	// Lors du clique sur l'icône de fermeture!
}

// Mettez ceci avec le reste des "void",
// Pour ceci aussi, prenez seulement le nécessaire.

Conclusion

J'espère que mon tutoriel d'utilisation de mon petit contrôle ne vous a pas trop déplus!

Donnez-moi vos appréciations, je vous attend ;)
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

07 novembre 2007 00:29:58 :
Image plus démonstratrice et rectifications mineurs!
07 novembre 2007 21:20:47 :
Rectification en fonction des facteurs d'alignement du titre!
07 novembre 2007 22:14:16 :
Solution d'exemple, Rectification de plusieurs erreurs, Arrangement des propriétés!
  • signaler à un administrateur
    Commentaire de sebmafate le 07/11/2007 08:54:19 administrateur CS

    Bof... pas super bien coder... les _ dans les Propriétés c'est moche... en plus préfixer le nom de chacune par PW ne sert à rien...
    Ce n'est pas customisable...
    Pour ma part, je dirais que la copie est à revoir !

  • signaler à un administrateur
    Commentaire de alvinp le 07/11/2007 09:52:10

    Pour ce qui est de la copie, je n'ai pu copier que par rapport à l'aperçu du programme car c'est un programme payant donc je ne possède pas les sources et je ne sais pas décompiler ce genre de trucs!

    Pour le préfixe PW, je l'ai mis pour indiquer les nouvelles propriétés ajoutés car j'ai du mal a m'y retrouver ^^

    Je trouve sa pas très beau non plus mais je suis pas un expert donc il y a des défauts plus voyants, par exemple lorsque tu insère une icône et que tu cherche à l'enlever avec un "Suppr" et bien, ce n'est pas possible mais je sais que sa doit être simple (j'connais pas tout :D)

  • signaler à un administrateur
    Commentaire de sebmafate le 07/11/2007 09:55:37 administrateur CS

    (copie) je ne parlais pas de la capture... mais de la source elle-même...

  • signaler à un administrateur
    Commentaire de alvinp le 07/11/2007 10:06:00

    OK, y a beaucoup à revoir pour que les programmeurs confirmés ai une utilité mais je le propose plutôt au débutants, sa leurs permettra de comprendre un peu le fonctionnement (je comprend qu'en voyant fonctionner aussi donc...) :D

  • signaler à un administrateur
    Commentaire de Bidou le 07/11/2007 10:36:39 administrateur CS

    C'est effectivement pas superbement bien codé...

    Pourquoi InitializeComponent n'est pas dans une classe partielle?
    public Image PW_Image_Icon. Et si on passe null?
    Pleins d'erreur au niveau graphique, par exemple si on aligne le texte à gauche (titre) il est tronqué, etc.

    Y'a encore pas mal de travaille, serait bien que ça soit mis à jour...

  • signaler à un administrateur
    Commentaire de alvinp le 07/11/2007 12:17:23

    Salut, je vais te dire franchement, en lisant ton commentaire, je n'ai pas pu m'empêcher de sourire!!

    Pas pour me moquer mais parce que j'ai à peine lu que j'ai compris pourquoi sa tronque (d'une), parce que j'ai laissé la picturebox de l'icône et je n'est pas fait une redisposition en rapport avec elle.

    Merci de préciser ces erreurs, pour ce qui est du codage, je ne sais pas ce que tu trouve mal fait!! Par contre j'aimerai que tu m'en face part pour pouvoir rectifier ceci dans mes futurs sources :D

  • signaler à un administrateur
    Commentaire de sebmafate le 07/11/2007 13:55:48 administrateur CS

    Bon...
    Ce n'est pas la peine de s'emporter... nos remarques n'étaient pas méchantes... ou alors involontaire.
    Maintenant, si tu n'acceptes pas la critique et rien ne t'oblige à publier ton code source... ça ne changera pas la face du monde qu'il y ait une source de plus ou de moins.

  • signaler à un administrateur
    Commentaire de alvinp le 07/11/2007 20:36:22

    J'ai dis que je ne prenais pas sa méchamment, ce n'étais pas de l'hypocrisie!

    Et je ne publie pas beaucoup de mes sources, seulement ce que je trouve utile...

  • signaler à un administrateur
    Commentaire de sebmafate le 07/11/2007 20:59:36 administrateur CS

    Dans ce cas, essaye de publier des sources propres.
    Merci.

    J'attends donc que tu mettes à jour cette source pour qu'elle soit propre et exploitable.
    Dans le cas contraire, je la supprimerais.

  • signaler à un administrateur
    Commentaire de Bidou le 07/11/2007 21:19:09 administrateur CS

    A changer (conseil)
    ====================

    1) Si tu travailles avec VS 2005 (FW2) utilises les classes partielles!
    Avoir tout le chenil créer par le designer dans le code, c'est méga lourd.

    2) Faire un projet de teste. La encore, si je veux tester, je dois créer un projet.
    C'est chiant. Pourquoi ne pas mettre une solution directement?

    3) Si je prends la peine de faire la solution moi-même, que je compile, et ensuite drag%drop le Control sur la form, j'ai une erreur (comme dit plus haut) du au fait que je n'ai pas spécifié d'icone. (public Image PW_Image_Icon)

    4) Revoir totalement le nommage des properties, ou t'es allé chercher des horreurs pareilles?

    5) Régler le probleme du titre que j'ai mentionné plus haut.

    6) Si je créer un panel, que j'y met un bouton dedans, voici le code obtenu:
                this.panel.XX = XXX;
                this.panel.Controls.Add(this.button);
                this.panel.XX = XXX;

    Voici maintenant celui de ton control:
                this.pyroWindow.XX = XXX;
    ...
                this.pyroWindow.XX = XXX;

    PUis
                this.Controls.Add(this.button);
                this.Controls.Add(this.pyroWindow);

    7)
    private int pos1 = 17;
    private int pos2 = 34;

    Ce sont des constantes?


    Voilà, pour dire le nombre de lignes qui ont été tapées, ça fait pas mal de corrections...
    On attends la MAJ

  • signaler à un administrateur
    Commentaire de alvinp le 07/11/2007 21:20:50

    Je déteste le chantage que vous faites, j'ai déjà eu ceci sur une autre source et c'est pour cela que je ne publie plus grand chose!

    Un conseil, éviter d'obliger quelqu'un sinon vous risqueriez d'être moins apprécié! Mal grès ça, j'apprécie énormément votre site et tout ce qu'il propose...

  • signaler à un administrateur
    Commentaire de alvinp le 07/11/2007 21:22:30

    Merci de ton commentaire, j'ai réglé en fonction de l'alignement mais je programme avec SharpDevelop donc c'est un peu différent ^^

  • signaler à un administrateur
    Commentaire de alvinp le 07/11/2007 21:25:54

    Pour les class partielle, je ne vois pas où vous souhaitez que je face ceci!
    Je fais le projet test de suite...
    Pour l'erreur en 3, je ne l'ai pas mais je vais essayer de voir ce que je peux faire.
    Pour le nommage, si vous pourriez m'aider :D
    La 6 je sais pas du tout d'où cela peut venir :(
    Et enfin, oui les deux sont des constantes désolé!!!

  • signaler à un administrateur
    Commentaire de alvinp le 07/11/2007 22:17:51

    J'espère que j'ai fait tout ce qu'il faut.

    Il y a une seule chose que j'aimerai savoir, c'est le fait de virer l'icône en appuyant sur "suppr" du clavier!! Sur mon contrôle cela ne fonctionne pas et j'aimerai bien de l'aide pour ceci.

    Merci d'avance ;)

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS