Buenas a todos. Tengo un control heredado de TextBox. En dicho control
quiero cambiarle el color al fondo y al texto. El fondo quiero ponerlo
degradado a partir de dos colores y el texto de un color. Uso el siguiente
Código pero no me da resultados, a ver si alguno me puede dcir q esta
fallando:
Esta es la función donde cambio el color del fondo y del texto
private void colorearTexto(PaintEventArgs e)
{
Rectangle rectangulo = e.ClipRectangle;
Brush pincel = new LinearGradientBrush
(rectangulo,Color.LightGray,Color.White,LinearGradientMode.Vertical);
Brush boli = new SolidBrush(SystemColors.ControlText);
e.Graphics.FillRectangle(pincel,rectangulo);
e.Graphics.DrawString(this.Text,this.Font,boli,rectangulo.Left,rectangulo.To
p);
}
Y a esta función la llamo en el constrcutor del componente heredado de la
siguiente manera:
public TextBoxSoloLectura()
{
InitializeComponent();
base.ReadOnly = true;
Graphics gphZonaPintar = base.CreateGraphics();
gphZonaPintar.Clip = new Region(new Rectangle(base.Location,base.Size));
System.Windows.Forms.PaintEventArgs e = new
PaintEventArgs(gphZonaPintar,new Rectangle
(base.Location,base.Size));
colorearTexto (e);
}
Pues esto no me hace nada, ni me pinta el fondo ni el texto en el color q yo
le indique. Si el codigo de la función colorearTexto lo pongo en el evento
paint de una label o de un form, por ejemplo, si me pinta el fondo y el
texto en el color que le indico
Una saludo a todos,
Pablo Diaz.-