Sobre ToolBar

13/02/2005 - 22:15 por HighSoft | Informe spam
En VB6 se podia referir a un determinado boton de una ToolBar utilizando su
clave
Ej. MiToolBar.Buttons("nuevo").Value = tbrPressed
o tambien mediante el índice del mismo
Ej. MiToolbar.Buttons(1).Value = tbrPressed

En VB.NET ya no exite la propiedad 'Key'. Esto obliga a trabajar solo con el
índice, lo que ocasiona problemas el momento en que se inserta un nuevo
boton entre otros existentes cambiando lógicamente el indice de los botones
que se encuentran a la derecha del nuevo y genera errores si ya hay
referencia, en alguna parte del codigo, a estos botones.
En algunos casos la propiedad 'Tag' sirve para emular la propiedad 'Key',
pero en otros no, como el ejemplo de arriba.

Que se puede hacer para evitar este problema?

Gracias por su atención, espero su ayuda.


HighSoft
 

Leer las respuestas

#1 Pedro Luna Montalvo, MVP
14/02/2005 - 15:17 | Informe spam
Saludos,

Es cierto que no hay un acceso indizado por clave a los botones de un
ToolBar, pero sin embargo en su lugar puedes usar las propias instancias de
los botones. Cuando en el diseñador agregas los botones, los mismos estan
disponibles como campos miembros del formulario, asi: puedo usar
MiBotonNuevo.

Si aun requieres el acceso indizado, puedes tomar la estrategia de guardar
la clave en el Tag del boton y como tu mismo mencionas, hacer un metodo de
busqueda del boton por esta propiedad. Si tomas esta estragegia, seria
optimo si haces un elemento que hereda de la clase ToolBar y el agregas esta
funcionalidad.

Otra es que, si todos los botones los agregas dinamicamente por codigo,
puedes tener en el formulario un HashTable donde, a la par de agregar el
boton al ToolBar, lo agregas al mismo y luego accedes al boton via
HashTable.


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"HighSoft" escribió en el mensaje
news:
En VB6 se podia referir a un determinado boton de una ToolBar utilizando


su
clave
Ej. MiToolBar.Buttons("nuevo").Value = tbrPressed
o tambien mediante el índice del mismo
Ej. MiToolbar.Buttons(1).Value = tbrPressed

En VB.NET ya no exite la propiedad 'Key'. Esto obliga a trabajar solo con


el
índice, lo que ocasiona problemas el momento en que se inserta un nuevo
boton entre otros existentes cambiando lógicamente el indice de los


botones
que se encuentran a la derecha del nuevo y genera errores si ya hay
referencia, en alguna parte del codigo, a estos botones.
En algunos casos la propiedad 'Tag' sirve para emular la propiedad 'Key',
pero en otros no, como el ejemplo de arriba.

Que se puede hacer para evitar este problema?

Gracias por su atención, espero su ayuda.


HighSoft




Preguntas similares