elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ayuda con una propiedad tipo lista en un custom control
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con una propiedad tipo lista en un custom control  (Leído 12,672 veces)
<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Ayuda con una propiedad tipo lista en un custom control
« en: 10 Marzo 2011, 18:05 pm »

Qué tal compañeros de foro! Hace tiempo que no pasaba por aqui. Saludos...

Les cuento que hace unos meses aprendi a crear mis propios controles personalizados (custom control), y si que ha sido provechoso. Es la mejor solucion cuando se quiere modificar o agregar propiedades a un control predefinido, o bien crear uno totalmente a la medida.
Pues bien, esto ultimo es justamente mi caso. Estoy creando un panel de botones, al que pueda ir cargandole items tal como se hace en un ListView, por ejemplo, solo que en este caso los items seran botones, que por cierto también son creados por mi.
En fin, para ello me cree una propiedad tipo lista (List (Of CrystalButton)), que se supone usaré para cargar los botones al panel. Pues bien, es justo ahi donde tengo el problema, pues no sé como asociar la inclusion de items a algun evento. ¿Para qué quiero eso? Pues porque es justo ahi donde debo incluir el codigo que me agregue el nuevo item al control e indique su posicion. De no hacer eso sólo puedo cargar ítems en la propiedad tipo lista, pero los botones no se agregan a mi control.
¿Me echan la mano?

Ah! Olvidé mencionar que uso el Visual Studio 2008, y estoy programando en Visual Basic.


« Última modificación: 10 Marzo 2011, 18:15 pm por <ИΘZIЭ(ŦB> » En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Ayuda con una propiedad tipo lista en un custom control
« Respuesta #1 en: 10 Marzo 2011, 19:16 pm »

Bueno, lo primero que se me ocurre es que crees tu propio customlist heredando de list<t> y sobrecargues el método add agregando un evento :D

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Ayuda con una propiedad tipo lista en un custom control
« Respuesta #2 en: 10 Marzo 2011, 19:18 pm »

No entiendo muy bien como lo tienes hecho, por lo que yo he entendido, has heredado tu control de un Listview verdad??
Si es asi, prueba a suscribirte al evento "ItemInserted".
Si eso no te funciona pon el codigo de tu control y asi podre intentar ayudarte mas ;)

Un saludo
En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Ayuda con una propiedad tipo lista en un custom control
« Respuesta #3 en: 10 Marzo 2011, 19:24 pm »

Lo que entiendo es que tiene un panel en el que uno de sus atributos es una lista generica de botones, y quiere que al agregar un botón en esa lista, se dispare un evento que lo ubique en el panel :P

Puede que yo haya entendido mal :xD

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Ayuda con una propiedad tipo lista en un custom control
« Respuesta #4 en: 10 Marzo 2011, 19:40 pm »

Lo que entiendo es que tiene un panel en el que uno de sus atributos es una lista generica de botones, y quiere que al agregar un botón en esa lista, se dispare un evento que lo ubique en el panel :P

Puede que yo haya entendido mal :xD

Saludos

Tienes razon Novluker, se refiere a un panel xDD yo lei listview y claro, ya me lie pensando en eso jajaja

Otra cosa que se peude intentar es que en vez de agregar los botones como items de un list, que se agregen a la coleccion de controles del panel y se suscriba al evento "ControlAdded" praa saber cuando se ha añadido un boton a la lista de controles del panel.

En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Re: Ayuda con una propiedad tipo lista en un custom control
« Respuesta #5 en: 11 Marzo 2011, 04:20 am »

Bien. Veo que ya entienden lo que quiero, y me han "sugerido" qué hacer. El asunto es que de verdad no tengo idea de cómo hacer lo que dicen. Por ejemplo, ¿cómo 'suscribo' la adición de botones a ese evento "ControAdded"? De verdad es primera vez que intento hacer un control de ese tipo, así que necesito detalles.
Otra cosa: mi control no es un Panel; es decir, no hereda del control Panel. Simplemente funcionará cómo un panel porque contendrá una serie de botones que el usuario irá cargando.
En línea

SRVAM

Desconectado Desconectado

Mensajes: 130


Ver Perfil
Re: Ayuda con una propiedad tipo lista en un custom control
« Respuesta #6 en: 11 Marzo 2011, 13:48 pm »

Para que podamos ayudarte mejor lo suyo seria que pudieses el codigo de tu control.

Sino hereda de un panel del que peudas coger eventos tipo ControlAdded puedes crearte tu propio evento y hacer que este salte cuando agregues un nuevo elemento a la lista.

pero es que sin ver tu codigo no se me ocurre mucho mas que decirte para ayudarte.

un saludo
En línea

C# Programmer

-Estudiante MCTS .NET Framework 3.5-
<ИΘZIЭ(ŦB>

Desconectado Desconectado

Mensajes: 109


-cyman-


Ver Perfil
Re: Ayuda con una propiedad tipo lista en un custom control
« Respuesta #7 en: 11 Marzo 2011, 18:11 pm »

Entiendo. El asunto es que no tengo código alguno todavía. Lo único que hice fue agregar un nuevo UserControl al proyecto. Cómo saben, esto me muestra un cuadro vacío en la ventana de diseño. Luego me fui al código y agregué una nueva propiedad tipo lista (como ya mencioné), y fue entonces cuando noté que no sabía que más hacer.
Así pues, hasta ahora sólo tengo esta propiedad llamada Items, a la que puedo agregar elementos sin problema desde el modo diseño. Sólo me hace falta captar la inclusión de los ítems en la propiedad, para agregarlos al UserControl.
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Ayuda con una propiedad tipo lista en un custom control
« Respuesta #8 en: 11 Marzo 2011, 18:17 pm »

Hola,

Es un poco largo, pero es la manera más sexy de y elegante de hacerlo:

1) En vez de utilizar List(Of CrystalControl), crea una clase que herede de Collection(Of T).

2) En esa clase que la llamaría CrystalControlCollection, tienes que crear un evento público (algo como ControlAdded) con un EventHandler(Of CrystalControlEventArgs).

3)CrystalControlEventArgs es otra clase que hereda de EventArgs con una propiedad pública de tipo CrystalControl que se llame Item (u otro nombre que quieras)

4) Luego haces override del método InsertItem en la clase CrystalControlCollection y ahi llamas al evento ControlAdded (con RaiseEvent en vb.net) en donde le pasas el control que se está añadiendo.

5) Sustituyes la lista por CrystalControlCollection, y te suscribes al evento ControlAdded :)

Puedes hacer muchas más cosas como cuando sacas un control de la lista llamar a otro evento en donde realmente sacas el control del UI. Esto se llama event driven development , creo.

Un saludo!
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Ayuda con una propiedad tipo lista en un custom control
« Respuesta #9 en: 11 Marzo 2011, 18:47 pm »

Que pesado! es como en el code del bot irc que saltaba por todas las páginas buscando eventos :xD

Es parecido a lo que puse al principio :xD la diferencia esta en que había obviado el tema de que los métodos de list no se pueden sobreescribir (por eso la sobrecarga), y lo del customeventhandler. ¿Podemos dar por buena mi respuesta? Di que si, di que si :D

Y pasate más por el foro, que sino sigo sugiriendo chapuzas :xD

Saludos

En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda con la propiedad MouseDown del control Image1
Programación Visual Basic
kakinets 7 3,722 Último mensaje 28 Julio 2005, 05:19 am
por APOKALYPSE
Lista en control de usuario
Programación Visual Basic
SheKeL_C$ 2 1,741 Último mensaje 23 Marzo 2011, 04:56 am
por seba123neo
Que tipo de lista dinamica me conviene utilizar? « 1 2 »
.NET (C#, VB.NET, ASP)
Skeletron 18 9,852 Último mensaje 13 Febrero 2010, 06:09 am
por Skeletron
Intentando crear un array de tipo Lista en c++
Programación C/C++
SXF 2 1,785 Último mensaje 1 Diciembre 2012, 20:29 pm
por SXF
HTTP CUSTOM , necesito ayuda
Dudas Generales
Benja279 1 2,679 Último mensaje 25 Abril 2021, 20:12 pm
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines