agarcia_01
Messages postés
51
Date d'inscription
mardi 8 février 2005
Statut
Membre
Dernière intervention
25 août 2006
13 déc. 2005 à 09:39
J'ai toujours ce meme probleme lorsque je créé mon objet textbox :( c'est quoi le probleme dans ma classe.
J'ai bien la bonne couleur de fond mais quand j'ercris dedans la ligne blanche apparait .
Merci pour ton aide et codes Lutinor.
Est ce que ça viendrait que j'herite ma classe de textBox au lieu de ritchTextBox
public class TextBoxAga : TextBox {
//Couleur du Haut
private Color couleurTop ;
//Couleur Gauche
private Color couleurLeft ;
//Couleur du Bas
private Color couleurBottom ;
//Couleur Droite
private Color couleurRigth ;
//Constante pour la méthode OnPaint
private const int WM_PAINT = 0xF;
private const int WS_EX_TRANSPARENT = 0x00000020;
//Couleur de fond de textBox
private Color couleurBack;
//geter et seter
public Color BorderColor {
get{return Color.Empty ;}
set{
this.couleurTop = value ;
this.couleurLeft = value ;
this.couleurBottom = value ;
this.couleurRigth = value ;
}
}
public Color backColor {
get {return this.couleurBack;}
set {this.couleurBack = value ;}
}
public Color BorderColorTop {
get {return this.couleurTop ;}
set {this.couleurTop = value ;}
}
public Color BorderColorLeft {
get {return this.couleurLeft ;}
set {this.couleurLeft = value ;}
}
public Color BorderColorBottom {
get {return this.couleurBottom ;}
set {this.couleurBottom = value ;}
}
public Color BorderColorRigth {
get {return this.couleurRigth ;}
set {this.couleurRigth = value ;}
}
public TextBoxAga(): base() {
//this.SetStyle(ControlStyles.UserPaint,true);
this.SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer, true );
}
protected override void OnPaint(PaintEventArgs e) {
//pour avoir mon fond en degradé
LinearGradientBrush brush = new LinearGradientBrush( this.Bounds, Color.Beige, Color.Pink, 45.0f );
e.Graphics.FillRectangle( brush, this.ClientRectangle );
// pour avoir les coin de ma textBox redessiné
//Taille de ma textBox
Rectangle rec = new Rectangle(0,0,this.Bounds.Width, this.Bounds.Height);
//fonction redessinant ma la bordure de ma texte boxe
DrawBorder(e.Graphics,rec,couleurTop, couleurBottom, couleurLeft,couleurRigth);
brush.Dispose();
}
private void DrawBorder(Graphics Graph , Rectangle rec,Color ColorTop,Color ColorBottom, Color ColorLeft, Color ColorRight){
Pen pen= new Pen(ColorLeft,1);
//Bordure Gauche
Graph.DrawLine(pen, rec.X, rec.Y+rec.Height-1, rec.X, rec.Y );
//bordure Top
Graph.DrawLine(pen, rec.X,rec.Y, rec.X+rec.Width-1,rec.Y) ;
//Bordure Droite
Graph.DrawLine(pen, rec.X + rec.Width - 1, rec.Y, rec.X + rec.Width - 1, rec.Top + rec.Height - 1);
//Bordure du Bas
Graph.DrawLine(pen, rec.X + rec.Width - 1, rec.Top + rec.Height - 1, rec.X, rec.Top + rec.Height - 1);
pen.Dispose();
pen.Dispose();
}
protected override void OnResize( EventArgs e ) {
//base.OnResize( e );
this.Invalidate();
}
protected override CreateParams CreateParams {
get {
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_TRANSPARENT;
return cp;
}
}