ToolStripLabel resaltado

26/01/2007 - 10:51 por Plextor | Informe spam
Hola a todos,

Necesito realizar un control como el ToolStripLabel, pero con una
propiedad de resaltado (como el toolStripButton cuando se pasa el ratón
por encima del control).

He realizado una herencia de ToolStripLabel, pero no consigo implementar
dicha propiedad de resaltado.

¿Alguien tiene alguna idea/sugerencia acerca de ésto?

Un saludo
Plextor

Preguntas similare

Leer las respuestas

#1 Luis Miguel Blanco
27/01/2007 - 18:27 | Informe spam
Hola Plextor

Quizá ya lo hayas probado, pero en el caso de que no sea así, una solución
rápida y que te evita la tarea de heredar de las clases que componen los
elementos de un ToolStrip, pasaría por utilizar en tu ToolStrip precisamente
un control ToolStripButton, al que le asignarías el literal a mostrar en su
propiedad Text. A continuación le asignas a su propiedad DisplayStyle el
valor ToolStripItemDisplayStyle.Text, lo que provocará el efecto de que se
comporte en cierta medida como una etiqueta, pero con la característica de
resaltado de color cuando sitúes el ratón encima. A continuación tienes un
bloque de código de ejemplo:

//-
// asignar un texto al botón
// y configurarlo para que su estilo de
// visualización sea sólo dicho texto
this.btnEtiqueta.Text = "Botón con forma de etiqueta";
this.btnEtiqueta.DisplayStyle = ToolStripItemDisplayStyle.Text;
//-

Si el color por defecto que se muestra cuando el ToolStripButton se resalta
no te parece adecuado, puedes personalizar una gran parte de los aspectos de
presentación de este control utilizando una clase derivada de
ToolStripRenderer.

En esta clase deberás reemplazar aquellos métodos relacionados que las
funcionalidades visuales a personalizar, por ejemplo: el color de fondo del
ToolStrip o del botón. Un ejemplo de esta clase con dichas funcionalidades lo
tienes en el siguiente bloque de código:

//-
// en este ejemplo debemos declarar el namespace Drawing2D
// porque utilizamos un degradado para pintar los colores
using System.Drawing.Drawing2D;
//

public class GeneradorContenidos : ToolStripRenderer
{
protected override void
OnRenderToolStripBackground(ToolStripRenderEventArgs e)
{
// pasar el contexto de dispositivo gráfico a una variable
Graphics oGraphics = e.Graphics;

// crear un efecto de degradado entre dos colores
LinearGradientBrush oDegradado;
oDegradado = new LinearGradientBrush(e.AffectedBounds,
Color.Green, Color.Yellow,
LinearGradientMode.ForwardDiagonal);

// aplicar el degradado sobre las dimensiones
// que ocupa el control ToolStrip
oGraphics.FillRectangle(oDegradado, e.AffectedBounds);
oDegradado.Dispose();

// llamar a la implementación base de este método
base.OnRenderToolStripBackground(e);
}

protected override void
OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
{
// pasar el contexto de dispositivo gráfico a una variable
Graphics oGraphics = e.Graphics;

// si pasamos el ratón sobre el botón
if (e.Item.Selected)
{
// aplicar un color de fondo distinto a
// la superficie ocupada por el botón,
// y dibujar un rectángulo que indica los
// límites del botón
oGraphics.FillRectangle(Brushes.Aqua,
new Rectangle(0, 0, e.Item.Width, e.Item.Height));

oGraphics.DrawRectangle(Pens.Black,
new Rectangle(0, 0, e.Item.Width - 1, e.Item.Height - 1));
}
}
}
//-

Una vez creada esta clase, deberás asignar una instancia de la misma a la
propiedad Renderer del control ToolStrip, por ejemplo en el evento Load del
formulario:

//-
private void Form1_Load(object sender, EventArgs e)
{
// asignar un texto al botón
// y configurarlo para que su estilo de
// visualización sea sólo dicho texto
this.btnEtiqueta.Text = "Botón con forma de etiqueta";
this.btnEtiqueta.DisplayStyle = ToolStripItemDisplayStyle.Text;

// crear una instancia de la clase que genera
// contenidos personalizados para el ToolStrip
// y asignarla a dicho control
this.tsBarra.Renderer = new GeneradorContenidos();
}
//-

De esta forma, al situar el cursor del ratón sobre el botón del ToolStrip,
personalizamos su efecto de resaltado con un color de fondo diferente del
estándar, y un recuadro que rodea al botón, que en este caso es igual que el
habitual pero podríamos haberlo dibujado con mayor grosor y otro color.

Bien, pues esto es todo, espero que te pueda servir para resolver el problema.
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Plextor" wrote:

Hola a todos,

Necesito realizar un control como el ToolStripLabel, pero con una
propiedad de resaltado (como el toolStripButton cuando se pasa el ratón
por encima del control).

He realizado una herencia de ToolStripLabel, pero no consigo implementar
dicha propiedad de resaltado.

¿Alguien tiene alguna idea/sugerencia acerca de ésto?

Un saludo
Plextor

Respuesta Responder a este mensaje
#2 Plextor
29/01/2007 - 09:25 | Informe spam
Muchas gracias Luis Miguel, por tu extensa y completa respuesta.

La primera opción que comentas ya lo había probado, pero en mi caso es
símplemente un resaltado (igual que en un ToolStripButton cuando te
situas encima), y que deberá activarse/desactivarse por código, es
decir, no necesitamos los eventos de Click/MouseHover (ni los efectos
que ellos crean como botón pulsado al realizar click, etc...) en fin que
se comporte como un ToolStripLabel, pero con el resaltado de los
ToolStripButton bajo petición por código.

Supongo que ésto último que comentó únicamente se podrá llevar a cabo
con herencias. ¿No tendrás algún ejemplo similar?

Un saludo y gracias.
Plextor



Luis Miguel Blanco escribió:
Hola Plextor

Quizá ya lo hayas probado, pero en el caso de que no sea así, una solución
rápida y que te evita la tarea de heredar de las clases que componen los
elementos de un ToolStrip, pasaría por utilizar en tu ToolStrip precisamente
un control ToolStripButton, al que le asignarías el literal a mostrar en su
propiedad Text. A continuación le asignas a su propiedad DisplayStyle el
valor ToolStripItemDisplayStyle.Text, lo que provocará el efecto de que se
comporte en cierta medida como una etiqueta, pero con la característica de
resaltado de color cuando sitúes el ratón encima. A continuación tienes un
bloque de código de ejemplo:

//-
// asignar un texto al botón
// y configurarlo para que su estilo de
// visualización sea sólo dicho texto
this.btnEtiqueta.Text = "Botón con forma de etiqueta";
this.btnEtiqueta.DisplayStyle = ToolStripItemDisplayStyle.Text;
//-

Si el color por defecto que se muestra cuando el ToolStripButton se resalta
no te parece adecuado, puedes personalizar una gran parte de los aspectos de
presentación de este control utilizando una clase derivada de
ToolStripRenderer.

En esta clase deberás reemplazar aquellos métodos relacionados que las
funcionalidades visuales a personalizar, por ejemplo: el color de fondo del
ToolStrip o del botón. Un ejemplo de esta clase con dichas funcionalidades lo
tienes en el siguiente bloque de código:

//-
// en este ejemplo debemos declarar el namespace Drawing2D
// porque utilizamos un degradado para pintar los colores
using System.Drawing.Drawing2D;
//

public class GeneradorContenidos : ToolStripRenderer
{
protected override void
OnRenderToolStripBackground(ToolStripRenderEventArgs e)
{
// pasar el contexto de dispositivo gráfico a una variable
Graphics oGraphics = e.Graphics;

// crear un efecto de degradado entre dos colores
LinearGradientBrush oDegradado;
oDegradado = new LinearGradientBrush(e.AffectedBounds,
Color.Green, Color.Yellow,
LinearGradientMode.ForwardDiagonal);

// aplicar el degradado sobre las dimensiones
// que ocupa el control ToolStrip
oGraphics.FillRectangle(oDegradado, e.AffectedBounds);
oDegradado.Dispose();

// llamar a la implementación base de este método
base.OnRenderToolStripBackground(e);
}

protected override void
OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
{
// pasar el contexto de dispositivo gráfico a una variable
Graphics oGraphics = e.Graphics;

// si pasamos el ratón sobre el botón
if (e.Item.Selected)
{
// aplicar un color de fondo distinto a
// la superficie ocupada por el botón,
// y dibujar un rectángulo que indica los
// límites del botón
oGraphics.FillRectangle(Brushes.Aqua,
new Rectangle(0, 0, e.Item.Width, e.Item.Height));

oGraphics.DrawRectangle(Pens.Black,
new Rectangle(0, 0, e.Item.Width - 1, e.Item.Height - 1));
}
}
}
//-

Una vez creada esta clase, deberás asignar una instancia de la misma a la
propiedad Renderer del control ToolStrip, por ejemplo en el evento Load del
formulario:

//-
private void Form1_Load(object sender, EventArgs e)
{
// asignar un texto al botón
// y configurarlo para que su estilo de
// visualización sea sólo dicho texto
this.btnEtiqueta.Text = "Botón con forma de etiqueta";
this.btnEtiqueta.DisplayStyle = ToolStripItemDisplayStyle.Text;

// crear una instancia de la clase que genera
// contenidos personalizados para el ToolStrip
// y asignarla a dicho control
this.tsBarra.Renderer = new GeneradorContenidos();
}
//-

De esta forma, al situar el cursor del ratón sobre el botón del ToolStrip,
personalizamos su efecto de resaltado con un color de fondo diferente del
estándar, y un recuadro que rodea al botón, que en este caso es igual que el
habitual pero podríamos haberlo dibujado con mayor grosor y otro color.

Bien, pues esto es todo, espero que te pueda servir para resolver el problema.
Respuesta Responder a este mensaje
#3 Luis Miguel Blanco
30/01/2007 - 00:16 | Informe spam
Hola Plextor, no hay de qué 8-)

El comportamiento que expones precisa, en efecto, un tratamiento
personalizado del control, para lo que efectivamente debemos crear una clase
derivada de ToolStripLabel y escribir el código que necesitemos para adaptar
el comportamiento.

Dado que quieres manipular de forma expresa el resaltado del control,
necesitaremos una propiedad de tipo bool, cuyo valor podemos conmutar para
pintar el control con resaltado o en estado normal. Por otro lado tendremos
que reemplazar el método OnPaint, que se produce cada vez que el control
necesita dibujarse, y escribir el código en el que efectuemos dicho proceso
de dibujo, normal o resaltado, según el valor de la propiedad. Esto es lo que
hacemos en la clase

//
public class EtiquetaBarra : ToolStripLabel
{
bool bResaltar = false;

public bool Resaltar
{
get
{
return bResaltar;
}
set
{
bResaltar = value;
this.Invalidate();
}
}

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);

// si hay que dibujar el control resaltado
if (bResaltar)
{
// obtener el contexto gráfico
Graphics oGraphics = e.Graphics;
// dibujar la superficie del control
oGraphics.FillRectangle(Brushes.LightCyan, e.ClipRectangle);
// dibujar el texto literal
oGraphics.DrawString(this.Text, this.Font,
new SolidBrush(this.ForeColor),
e.ClipRectangle.X + 2, e.ClipRectangle.Y + 2);
}
}
}
//

Observa que al reemplazar OnPaint, sólo necesitamos escribir el código para
cuando la situación sea la correspondiente a dibujar el control de forma
resaltada. En circunstancias normales, es decir, cuando no necesitamos
resaltarlo, dejamos el trabajo al propio control.

Seguidamente pasamos al formulario en el que vamos a hacer uso del control.
Añadimos al mismo un control ToolStrip en el que agregaremos una instancia de
nuestra clase derivada de ToolStripLabel. También incluiremos un CheckBox que
nos permitirá cambiar la etiqueta entre resaltada y normal, simplemente
cambiando el valor de la propiedad Resaltar de nuestra clase personalizada.

//
public partial class Form1 : Form
{
ToolStrip tsBarraHerram;
CheckBox chkResaltar;
EtiquetaBarra oEtiquetaBarra;

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
tsBarraHerram = new ToolStrip();
tsBarraHerram.Dock = DockStyle.Top;
this.Controls.Add(tsBarraHerram);

chkResaltar = new CheckBox();
chkResaltar.Name = "chkResaltar";
chkResaltar.Text = "Resaltar";
chkResaltar.Location = new Point(50, 50);
chkResaltar.CheckedChanged += new EventHandler(chkResaltarCambiarCheck);
this.Controls.Add(chkResaltar);

oEtiquetaBarra = new EtiquetaBarra();
oEtiquetaBarra.Text = "Etiqueta personalizada";

tsBarraHerram.Items.Add(oEtiquetaBarra);
}

private void chkResaltarCambiarCheck(object sender, EventArgs e)
{
oEtiquetaBarra.Resaltar = !oEtiquetaBarra.Resaltar;
}
}
//

Bueno, y esto es todo, espero que este ejemplo se ajuste más a lo que
necesitas.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Plextor" wrote:

Muchas gracias Luis Miguel, por tu extensa y completa respuesta.

La primera opción que comentas ya lo había probado, pero en mi caso es
símplemente un resaltado (igual que en un ToolStripButton cuando te
situas encima), y que deberá activarse/desactivarse por código, es
decir, no necesitamos los eventos de Click/MouseHover (ni los efectos
que ellos crean como botón pulsado al realizar click, etc...) en fin que
se comporte como un ToolStripLabel, pero con el resaltado de los
ToolStripButton bajo petición por código.

Supongo que ésto último que comentó únicamente se podrá llevar a cabo
con herencias. ¿No tendrás algún ejemplo similar?

Un saludo y gracias.
Plextor



Luis Miguel Blanco escribió:
> Hola Plextor
>
> Quizá ya lo hayas probado, pero en el caso de que no sea así, una solución
> rápida y que te evita la tarea de heredar de las clases que componen los
> elementos de un ToolStrip, pasaría por utilizar en tu ToolStrip precisamente
> un control ToolStripButton, al que le asignarías el literal a mostrar en su
> propiedad Text. A continuación le asignas a su propiedad DisplayStyle el
> valor ToolStripItemDisplayStyle.Text, lo que provocará el efecto de que se
> comporte en cierta medida como una etiqueta, pero con la característica de
> resaltado de color cuando sitúes el ratón encima. A continuación tienes un
> bloque de código de ejemplo:
>
> //-
> // asignar un texto al botón
> // y configurarlo para que su estilo de
> // visualización sea sólo dicho texto
> this.btnEtiqueta.Text = "Botón con forma de etiqueta";
> this.btnEtiqueta.DisplayStyle = ToolStripItemDisplayStyle.Text;
> //-
>
> Si el color por defecto que se muestra cuando el ToolStripButton se resalta
> no te parece adecuado, puedes personalizar una gran parte de los aspectos de
> presentación de este control utilizando una clase derivada de
> ToolStripRenderer.
>
> En esta clase deberás reemplazar aquellos métodos relacionados que las
> funcionalidades visuales a personalizar, por ejemplo: el color de fondo del
> ToolStrip o del botón. Un ejemplo de esta clase con dichas funcionalidades lo
> tienes en el siguiente bloque de código:
>
> //-
> // en este ejemplo debemos declarar el namespace Drawing2D
> // porque utilizamos un degradado para pintar los colores
> using System.Drawing.Drawing2D;
> //
>
> public class GeneradorContenidos : ToolStripRenderer
> {
> protected override void
> OnRenderToolStripBackground(ToolStripRenderEventArgs e)
> {
> // pasar el contexto de dispositivo gráfico a una variable
> Graphics oGraphics = e.Graphics;
>
> // crear un efecto de degradado entre dos colores
> LinearGradientBrush oDegradado;
> oDegradado = new LinearGradientBrush(e.AffectedBounds,
> Color.Green, Color.Yellow,
> LinearGradientMode.ForwardDiagonal);
>
> // aplicar el degradado sobre las dimensiones
> // que ocupa el control ToolStrip
> oGraphics.FillRectangle(oDegradado, e.AffectedBounds);
> oDegradado.Dispose();
>
> // llamar a la implementación base de este método
> base.OnRenderToolStripBackground(e);
> }
>
> protected override void
> OnRenderButtonBackground(ToolStripItemRenderEventArgs e)
> {
> // pasar el contexto de dispositivo gráfico a una variable
> Graphics oGraphics = e.Graphics;
>
> // si pasamos el ratón sobre el botón
> if (e.Item.Selected)
> {
> // aplicar un color de fondo distinto a
> // la superficie ocupada por el botón,
> // y dibujar un rectángulo que indica los
> // límites del botón
> oGraphics.FillRectangle(Brushes.Aqua,
> new Rectangle(0, 0, e.Item.Width, e.Item.Height));
>
> oGraphics.DrawRectangle(Pens.Black,
> new Rectangle(0, 0, e.Item.Width - 1, e.Item.Height - 1));
> }
> }
> }
> //-
>
> Una vez creada esta clase, deberás asignar una instancia de la misma a la
> propiedad Renderer del control ToolStrip, por ejemplo en el evento Load del
> formulario:
>
> //-
> private void Form1_Load(object sender, EventArgs e)
> {
> // asignar un texto al botón
> // y configurarlo para que su estilo de
> // visualización sea sólo dicho texto
> this.btnEtiqueta.Text = "Botón con forma de etiqueta";
> this.btnEtiqueta.DisplayStyle = ToolStripItemDisplayStyle.Text;
>
> // crear una instancia de la clase que genera
> // contenidos personalizados para el ToolStrip
> // y asignarla a dicho control
> this.tsBarra.Renderer = new GeneradorContenidos();
> }
> //-
>
> De esta forma, al situar el cursor del ratón sobre el botón del ToolStrip,
> personalizamos su efecto de resaltado con un color de fondo diferente del
> estándar, y un recuadro que rodea al botón, que en este caso es igual que el
> habitual pero podríamos haberlo dibujado con mayor grosor y otro color.
>
> Bien, pues esto es todo, espero que te pueda servir para resolver el problema.

Respuesta Responder a este mensaje
#4 Plextor
30/01/2007 - 12:26 | Informe spam
Ostras Luis Miguel. mas no puedo pedir. Es exactamente lo que
necesitaba. Muchas gracias por tu ayuda.

Un saludo,
Plextor

Luis Miguel Blanco escribió:
Hola Plextor, no hay de qué 8-)

El comportamiento que expones precisa, en efecto, un tratamiento
personalizado del control, para lo que efectivamente debemos crear una clase
derivada de ToolStripLabel y escribir el código que necesitemos para adaptar
el comportamiento.

Dado que quieres manipular de forma expresa el resaltado del control,
necesitaremos una propiedad de tipo bool, cuyo valor podemos conmutar para
pintar el control con resaltado o en estado normal. Por otro lado tendremos
que reemplazar el método OnPaint, que se produce cada vez que el control
necesita dibujarse, y escribir el código en el que efectuemos dicho proceso
de dibujo, normal o resaltado, según el valor de la propiedad. Esto es lo que
hacemos en la clase

//
public class EtiquetaBarra : ToolStripLabel
{
bool bResaltar = false;

public bool Resaltar
{
get
{
return bResaltar;
}
set
{
bResaltar = value;
this.Invalidate();
}
}

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);

// si hay que dibujar el control resaltado
if (bResaltar)
{
// obtener el contexto gráfico
Graphics oGraphics = e.Graphics;
// dibujar la superficie del control
oGraphics.FillRectangle(Brushes.LightCyan, e.ClipRectangle);
// dibujar el texto literal
oGraphics.DrawString(this.Text, this.Font,
new SolidBrush(this.ForeColor),
e.ClipRectangle.X + 2, e.ClipRectangle.Y + 2);
}
}
}
//

Observa que al reemplazar OnPaint, sólo necesitamos escribir el código para
cuando la situación sea la correspondiente a dibujar el control de forma
resaltada. En circunstancias normales, es decir, cuando no necesitamos
resaltarlo, dejamos el trabajo al propio control.

Seguidamente pasamos al formulario en el que vamos a hacer uso del control.
Añadimos al mismo un control ToolStrip en el que agregaremos una instancia de
nuestra clase derivada de ToolStripLabel. También incluiremos un CheckBox que
nos permitirá cambiar la etiqueta entre resaltada y normal, simplemente
cambiando el valor de la propiedad Resaltar de nuestra clase personalizada.

//
public partial class Form1 : Form
{
ToolStrip tsBarraHerram;
CheckBox chkResaltar;
EtiquetaBarra oEtiquetaBarra;

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
tsBarraHerram = new ToolStrip();
tsBarraHerram.Dock = DockStyle.Top;
this.Controls.Add(tsBarraHerram);

chkResaltar = new CheckBox();
chkResaltar.Name = "chkResaltar";
chkResaltar.Text = "Resaltar";
chkResaltar.Location = new Point(50, 50);
chkResaltar.CheckedChanged += new EventHandler(chkResaltarCambiarCheck);
this.Controls.Add(chkResaltar);

oEtiquetaBarra = new EtiquetaBarra();
oEtiquetaBarra.Text = "Etiqueta personalizada";

tsBarraHerram.Items.Add(oEtiquetaBarra);
}

private void chkResaltarCambiarCheck(object sender, EventArgs e)
{
oEtiquetaBarra.Resaltar = !oEtiquetaBarra.Resaltar;
}
}
//

Bueno, y esto es todo, espero que este ejemplo se ajuste más a lo que
necesitas.

Respuesta Responder a este mensaje
#5 Luis Miguel Blanco
30/01/2007 - 12:36 | Informe spam
No hay de qué, me alegra mucho de que esto sea lo que te hacía falta para
resolver el problema 8-))))
Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com


"Plextor" wrote:

Ostras Luis Miguel. mas no puedo pedir. Es exactamente lo que
necesitaba. Muchas gracias por tu ayuda.

Un saludo,
Plextor

Luis Miguel Blanco escribió:
> Hola Plextor, no hay de qué 8-)
>
> El comportamiento que expones precisa, en efecto, un tratamiento
> personalizado del control, para lo que efectivamente debemos crear una clase
> derivada de ToolStripLabel y escribir el código que necesitemos para adaptar
> el comportamiento.
>
> Dado que quieres manipular de forma expresa el resaltado del control,
> necesitaremos una propiedad de tipo bool, cuyo valor podemos conmutar para
> pintar el control con resaltado o en estado normal. Por otro lado tendremos
> que reemplazar el método OnPaint, que se produce cada vez que el control
> necesita dibujarse, y escribir el código en el que efectuemos dicho proceso
> de dibujo, normal o resaltado, según el valor de la propiedad. Esto es lo que
> hacemos en la clase
>
> //
> public class EtiquetaBarra : ToolStripLabel
> {
> bool bResaltar = false;
>
> public bool Resaltar
> {
> get
> {
> return bResaltar;
> }
> set
> {
> bResaltar = value;
> this.Invalidate();
> }
> }
>
> protected override void OnPaint(PaintEventArgs e)
> {
> base.OnPaint(e);
>
> // si hay que dibujar el control resaltado
> if (bResaltar)
> {
> // obtener el contexto gráfico
> Graphics oGraphics = e.Graphics;
> // dibujar la superficie del control
> oGraphics.FillRectangle(Brushes.LightCyan, e.ClipRectangle);
> // dibujar el texto literal
> oGraphics.DrawString(this.Text, this.Font,
> new SolidBrush(this.ForeColor),
> e.ClipRectangle.X + 2, e.ClipRectangle.Y + 2);
> }
> }
> }
> //
>
> Observa que al reemplazar OnPaint, sólo necesitamos escribir el código para
> cuando la situación sea la correspondiente a dibujar el control de forma
> resaltada. En circunstancias normales, es decir, cuando no necesitamos
> resaltarlo, dejamos el trabajo al propio control.
>
> Seguidamente pasamos al formulario en el que vamos a hacer uso del control.
> Añadimos al mismo un control ToolStrip en el que agregaremos una instancia de
> nuestra clase derivada de ToolStripLabel. También incluiremos un CheckBox que
> nos permitirá cambiar la etiqueta entre resaltada y normal, simplemente
> cambiando el valor de la propiedad Resaltar de nuestra clase personalizada.
>
> //
> public partial class Form1 : Form
> {
> ToolStrip tsBarraHerram;
> CheckBox chkResaltar;
> EtiquetaBarra oEtiquetaBarra;
>
> public Form1()
> {
> InitializeComponent();
> }
>
> private void Form1_Load(object sender, EventArgs e)
> {
> tsBarraHerram = new ToolStrip();
> tsBarraHerram.Dock = DockStyle.Top;
> this.Controls.Add(tsBarraHerram);
>
> chkResaltar = new CheckBox();
> chkResaltar.Name = "chkResaltar";
> chkResaltar.Text = "Resaltar";
> chkResaltar.Location = new Point(50, 50);
> chkResaltar.CheckedChanged += new EventHandler(chkResaltarCambiarCheck);
> this.Controls.Add(chkResaltar);
>
> oEtiquetaBarra = new EtiquetaBarra();
> oEtiquetaBarra.Text = "Etiqueta personalizada";
>
> tsBarraHerram.Items.Add(oEtiquetaBarra);
> }
>
> private void chkResaltarCambiarCheck(object sender, EventArgs e)
> {
> oEtiquetaBarra.Resaltar = !oEtiquetaBarra.Resaltar;
> }
> }
> //
>
> Bueno, y esto es todo, espero que este ejemplo se ajuste más a lo que
> necesitas.
>

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida