Equivalent Handles (vb) en Csharp ?

Résolu
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011 - 16 juil. 2008 à 18:07
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011 - 18 juil. 2008 à 17:41
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

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
17 juil. 2008 à 09:19
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]
3
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011
16 juil. 2008 à 18:21
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 :)
0
cs_ansizak Messages postés 191 Date d'inscription mercredi 11 juillet 2007 Statut Membre Dernière intervention 30 juin 2011
18 juil. 2008 à 17:41
Rhoooo jsui trop bête...
Merci...

Cordialement,

Anz.
0
Rejoignez-nous