Créer un Controle de type shape de vb6

z_san Messages postés 80 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 24 mai 2007 - 8 mars 2007 à 14:20
z_san Messages postés 80 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 24 mai 2007 - 16 mars 2007 à 09:51
Bonjour

J'ai besoin de créer un controle de type shape comme celui de vb6 pour une application de supervision.

J'ai déjà ma fonction Paint de faite elle contient :

this.Update();
Pen blackPen = new Pen(Color.Black, 2);
SolidBrush brush = SolidBrush(Color.DarkGreen);
Rectangle rect = Rectangle(0,0, Width, Height);

e.Graphics.FillRectangle(brush, rect);
e.Graphics.DrawEllipse(blackPen, rect);

Malheureusement, l'objet se dessine mais c'est tout le controle qui est peinds en vert et non pas seulement le cercle. J'ai essayé de définir une propriéte BkColor mais je n'arrive pas à trouver l'astuce.

Si quelqu'un a déjà été confronté au problème

Merci

Z.

2 réponses

z_san Messages postés 80 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 24 mai 2007
9 mars 2007 à 13:34
Merci Resolu !
0
z_san Messages postés 80 Date d'inscription jeudi 2 février 2006 Statut Membre Dernière intervention 24 mai 2007
16 mars 2007 à 09:51
Quand je change la couleur de fond de mon controle (la couleur de fond du cercle donc) cela ne s'affiche pas de suite sur la form il faut que je reduise la form ou il se trouve puis que je la réaffiche et la la couleur de fond change, j'ai bien mis mon code dans la fonction paint mais la je nage un peu sur ce qui se passe je t'envoie le code le soucis est que pour changer le la couleur de fond de mon controle.

Merci.

voilà le code de mon controle

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Data;
using System.Text;
using System.Windows.Forms;

namespace Test
{
public partial class Shape : UserControl
{
private Color BckColor;
private Rectangle Rect = new Rectangle();

Graphics g;

public Shape()
{
InitializeComponent();
BkColor = this.BackColor;
}

private void Shape_Paint(object sender, PaintEventArgs e)
{
this.Update();

Pen blackPen = new Pen(Color.Black, 1);
Rectangle rect = new Rectangle(0, 0, this.Width - 1, this.Height - 1);
SolidBrush brush = new SolidBrush(BckColor);
Rect = rect;

e.Graphics.FillEllipse(brush, rect);
e.Graphics.DrawEllipse(blackPen, rect);
e.Dispose();
}

public Color BkColor
{
set
{
BckColor = value;

}
get
{
return BckColor;
}
}

public override Color BackColor
{
get
{

return base.BackColor;
}
set
{
BckColor = value;
this.Update();
}
}
}
}

voilà merci !
0
Rejoignez-nous