Formulaire personnalisé

Résolu
cs_Byrong Messages postés 224 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 24 juillet 2013 - 11 août 2010 à 20:03
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 14 août 2010 à 08:04
Bonjour

Est-il possible de créer un aspect visuel totalement personnalisé pour les forms??

en fait j'aimerais faire une form qui ressemble a une table de poker. avec la croix de fermeture au bord de la table et donc au dessus du rectangle...

Est-ce possible?

merci

9 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
11 août 2010 à 22:12
Re

tu trouveras un peu plus de détail ->ici<-

Bob
C# is amazing, enjoy it!
3
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
11 août 2010 à 22:03
Salut Byrong

Oui tout à fait possible, GDI+ permet ce genre de chose
par exemple, crées-toi un projet avec une form simple
et ajoute ce code
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath();
shape.AddEllipse(0, 0, this.Width, this.Height);
this.Region = new System.Drawing.Region(shape);
}


on défini un GraphicsPath, qui est un ensemble de forme et d'objet graphiques
puis on modifie la region graphique de la form pour lui donner celle du GrpahicPath
dans l'exemple on y défini qu'une elipse, mais on aurrait pu y mettre plein d'autres objets, la region graphique résultante aurrait donnée la forme de la "form".
on peut par exemple avoir des forms avec des trous.

pour finir, on peut ajouter une image de fond pour un meilleur rendu.


Bob
C# is amazing, enjoy it!
0
cs_Byrong Messages postés 224 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 24 juillet 2013
11 août 2010 à 22:11
merci et comment je fais pour mettre les bouton croix, reduire et agrandir au centre?

merci t es trop fort
0
cs_Byrong Messages postés 224 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 24 juillet 2013
13 août 2010 à 15:29
je vais essayer cela et je te tiens au courant

merci en tout cas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Byrong Messages postés 224 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 24 juillet 2013
13 août 2010 à 15:52
est-il possible de faire cela sur des boutons?

afin d'avoir des bouton totalement rond...

merci
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
13 août 2010 à 18:51
Bonsoir Byrong

à ma conaissance il n'existe rien de "tout pret" mais tu peux le faire par toi-même
l'idéal serait de définir ton propre UserControl,
voici un exemple ou je redéfini un bouton, tu peux l'utiliser dans ta form, ou t'en inspirer pour écrir un UserControl

l'idée est d'avoir 2 images une pour le bouton UP une pour DOWN
j'en profite pour changer la couleur du texte lors du survole de la souris

public Form1()
{
InitializeComponent();

//redéfinition des boutons 5 et 6, les images up et down proviennent de la resource locale
SetUSerButton(button5, 
               global::WindowsFormsApplication6.Properties.Resources.screen7,
               global::WindowsFormsApplication6.Properties.Resources.screen4);
SetUSerButton(button6, 
               global::WindowsFormsApplication6.Properties.Resources.screen7,
               global::WindowsFormsApplication6.Properties.Resources.screen4);
     ...
}
// Méthode de définition d'un user bouton
private void SetUSerButton(Button button, Image imageUp, Image imageDown)
{

// image UP
button.BackgroundImage = imageUp;
// L'image down mémorisée dans le Tag
button.Tag = imageDown;

// l'image s'adapte à la taille du bouton
button.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;

// Apparence FLAT et les couleurs et les bordures transparentes
button.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
button.UseVisualStyleBackColor = false;
button.FlatAppearance.BorderSize = 0;
button.BackColor = System.Drawing.Color.Transparent;
button.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
button.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;

// les evenements de souris pour changer les couleurs et les images
button.MouseLeave += new System.EventHandler(this.UserButton_MouseLeave);
button.MouseDown += new System.Windows.Forms.MouseEventHandler(this.UserButton_MouseDown);
button.MouseHover += new System.EventHandler(this.UserButton_MouseHover);
button.MouseUp += new System.Windows.Forms.MouseEventHandler(this.UserButton_MouseUp);

}
// la souris au dessus du bouton, on change la couleur
private void UserButton_MouseHover(object sender, EventArgs e)
{
//change le texte en rouge
((Button)sender).ForeColor = Color.Red;
}
// la souris sort du bouton, on remet la couleur noire
private void UserButton_MouseLeave(object sender, EventArgs e)
{
//retour en noir
((Button)sender).ForeColor = Color.Black;
}
// Click, on change l'image pour avoir un impression d'enfoncement.
private void UserButton_MouseDown(object sender, MouseEventArgs e)
{
//l'image down est dans le Tag l'image up est affichée
Image imageUp = ((Button)sender).BackgroundImage;
((Button)sender).BackgroundImage = ((Button)sender).Tag as Image;
// on met l'image up dans le Tag
((Button)sender).Tag = imageUp;
}
//retour à la normal
private void UserButton_MouseUp(object sender, MouseEventArgs e)
{
//l'image up est dans le Tag l'image down est affichée
Image imageDown = ((Button)sender).BackgroundImage;
((Button)sender).BackgroundImage = ((Button)sender).Tag as Image;
// on met l'image down dans le Tag
((Button)sender).Tag = imageDown;
}


C# is amazing, enjoy it!
0
cs_Byrong Messages postés 224 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 24 juillet 2013
13 août 2010 à 20:02
ok merci, je vais regarde a ca, enf ait je veux juste faire un bouton qui ressemble a un jeton de poker. sans forcement mettre beaucoup d effet dessus
0
soupiste Messages postés 79 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 22 juin 2011
13 août 2010 à 22:56
Bonjour a tous,

Dis moi Robert ! tu sembles avoir une bonne pratique des winform. pour ma part, je crée en ce moment une application windows form parent-enfant. Mais, au fur et a mesure que j'ajoute des contrôles dans mes formes, elles s'alourdissent et semblent planter au démarrage ou l'affichage de la form concernée. Ce que je voudrais, c'est une interface légère (qu'importe le nombre de contrôles) qui ne plante pas. Dois-je faire appel aux threads, et comment ??

Merci a tous pour vos conseils.
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
14 août 2010 à 08:04
Bonjour Soupiste

Pas très fair-play de s'immisser dans une conversation avec un nouveau sujet.

Pose ta question sur le forum, on va y répondre, ou écris-moi directement.

Bob
C# is amazing, enjoy it!
0
Rejoignez-nous