Equivalent Handles (vb) en Csharp ? [Résolu]

Signaler
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
30 juin 2011
-
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
30 juin 2011
-
Bonjour,

Je souhaite effectuer un dégradé sur un de mes panels en m'inspirant du code vb 2005 suivant:

[..] toolstrip2_paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles ToolStrip2.Paint

        Dim g As Graphics = e.Graphics

        Dim rect As New Rectangle(0, 0, ToolStrip2.Width, ToolStrip2.Height)

        Dim b As New System.Drawing.Drawing2D.LinearGradientBrush(rect, Color.White, Color.LightSteelBlue, Drawing2D.LinearGradientMode.Vertical

Hum désolé pour le "[...]" au début mais je ne me rappelle plus de la syntaxe exacte.
Bref, toujours est-il que j'ai copié l'idée et ai produit le code suivant:

private void mainpanel_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            Rectangle rect = new Rectangle(0, 0, mainpanel.Width, mainpanel.Height);
            new System.Drawing.Drawing2D.LinearGradientBrush(rect, Color.Red, Color.White, 0, true);
        }

Mais je n'obtiens pas mon dégradé...

Une idée ?

Merci par avance,
Cordialement,
Anz.

3 réponses

Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
32
il faut aussi faire ceci dans le Form_Load :

mainpanel.Paint += new PaintEventHandler(mainpanel_Paint);

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
30 juin 2011

up !

Juste pour dire que j'ai effectué autrement:

 private void mainpanel_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            Rectangle rect = new Rectangle(0, 0, mainpanel.Width, mainpanel.Height);
            Brush b = new System.Drawing.Drawing2D.LinearGradientBrush(rect, Color.Gray, Color.White, 0, true);
            g.FillRectangle(b,rect);
        }

Ca me parait plus évident, mais ça ne fonctionne toujours pas :)
Messages postés
191
Date d'inscription
mercredi 11 juillet 2007
Statut
Membre
Dernière intervention
30 juin 2011

Rhoooo jsui trop bête...
Merci...

Cordialement,

Anz.