Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - <ИΘZIЭ(ŦB>

#1
Jeje! De verdad aprecio su interés pero no están respondiendo la pregunta. Si vuelven a leer, dije que en un proyecto lo hace como quiero, y el otro no. ¿Qué quiere decir eso? Que existe una manera de configurarlo. De hecho, se hace con una propiedad del Label que ya descubrí, pues no me di por vencido descartando la posibilidad de lograr lo que quería. Lo único que tuve que hacer fue esto: Label1.UseCompatibleTextRendering = True y listo. Ahora no me subraya los espacios en blanco del inicio, justo como quería. Y para no tener que hacerlo cada vez que cargo el control a un formulario se lo asigné en el evento New del mismo, en mi librería de controles. Mejor imposible.
Así que tomen nota de la propiedad cuando la necesiten.
Saludos.
#2
Pues por lo que ya mencioné: el espacio es para que el texto no converja con el ícono que le asigno. Por eso me interesa saber por qué en el UserControl compilado solo se subraya el texto, pero en el formulario se subraya todo. Debe haber alguna diferencia configurable entre los dos tipos de proyecto, y es lo que quiero saber.
#3
No dijiste en qué lenguaje estás programando
#4
Qué tal compañeros!

Me presento por aquí por un problema que se acaba de presentar. Alguien una vez me contradijo porque dije que Visual Basic tenía errores, pero sigo pensando que así es. Este caso en particular me lo confirma.

Resulta que tengo un UserControl con un Label dentro que funciona como un hipervínculo, solo que se muestra subrayado al pasar el mouse sobre él; de resto se muestra con fuente regular. En eso no tengo problema. El asunto está cuando el Label tiene espacios en blanco al inicio de su propiedad Text: se subraya todo, hasta los espacios en blanco, y es un problema porque cuando le dejo esos espacios es porque le asigno un icono (Image) al principio.
Ahora bien, ¿por qué digo que esto es un error de VB? Pues muy sencillo: porque cuando estaba diseñando mi UserControl en mi proyecto tipo ClassLibrary, y lanzaba el compilador para probar el funcionamiento de mi control no pasaba eso; es decir, los espacios en blanco iniciales no se subrayaban; vino a ocurrir después que di por terminado el diseño del control y lo usé en un formulario de un proyecto normal tipo WindowsForms.
Así pues, no tengo idea de qué pasa. ¿Sabrán ustedes? ¿Tendré que configurar algo que no sé? De verdad les agradezco una ayuda.
#5
Bueno, después de tanto revisar y probar noté que el problema con Remove solo se presenta en modo de diseño. Es decir, cuando agrego mi control a un formulario y accedo a la colección a través de la propiedad, y le quito items, pues no se ejecuta el Remove de la colacción; pero si pongo un botón en el formulario para remover un item, ejecuto la aplicación y oprimo el botón, ahí sí se ejecuta el bloque Remove. No sé por qué pero así ocurre. Lo extraño es que en modo diseño sí se ejecuta el bloque Add. ¿Alguna idea de por qué?
#6
Sigo insistiendo aquí porque todavía tengo algunos problemas con la propiedad tipo colección.
Antes que nada, debo decir que ya pude detectar el cambio en la colección. En efecto, había que lanzar el evento público ControlAdded desde el evento InsertItem sobreescrito de la colección, y luego suscribirse al mismo desde el UserControl contenedor, cómo sugirieron. Ahora bien, ¿cómo se hace la suscripción? Estuve esperando esa respuesta todo el tiempo, más nunca me llegó; apenas vine a saberlo hace unos minutos.
Resulta que lo único que había que hacer era agregar WithEvents a la declaración de la variable que complementa a la propiedad colección, y luego agregar Handles variable.ControlAdded al método que incluye y ordena los botones.
Ahora bien, como mencioné antes, mis problemas no han terminado, así que requiero de su pericia nuevamente.
Resulta que, por alguna extraña razón que desconozco, el evento RemoveItem no se ejecuta al remover un ítem de la colección. De verdad no lo entiendo. Hice lo mismo que con InsertItem y nada que me da resultado, pues noté que la compilación no entra en el bloque RemoveItem cuando remuevo un ítem de la colección. ¿Por qué pasa eso?
#7
Oye eso sí no lo sabía. Así puedo clasificar aun mejor mis librerías de controles, en caso de ser necesario.

Gracias otra vez!  ;-)
#8
Ciertamente muy bueno el primer artículo. Antes había probado con el Namespace pero no sabía que había que escribirlo en cada clase; pensaba que se hacía en un sólo código. Gracias de verdad por la ayuda.

Para los que entran al tema buscando lo mismo que yo, pues les comento que para hacer la correcta estructuración de las clases estas deben estar dentro de un espacio de nombre  (Namespace), que no es otra cosa que una categoría. Si tienen diferentes clases pertenecientes a una misma categoría, cada una de esas clases debe estar dentro de un Namespace con el mismo nombre. Por ejemplo, en mi caso tengo un proyecto tipo Class Library en el que tengo varios controles de usuario (UserControl), pero también algunos módulos y métodos. Por ello, para diferenciar unos de otros, sencillamente encerré cada clase así:

Namespace Controls

Public Class MyControlX

'Aquí el código de la clase

End Class

End Namespace

Eso hice con cada control que tengo en el proyecto y listo: ahora todos pertenecen al espacio de nombre Controls, como quería. Claro está, eso requirió actualizar algunas líneas de código que hacían alusión al nombre completo anterior de algunos controles internos, pero que cambiaron al asignarlos al Namespace. Por ejemplo, antes el nombre era MyLibrary.MyControlX, y tuve que actualizarlo a MyLibrary.Controls.MyControlX; eso sólo en algunos UserControls que tenían otros UserControls como componentes. Luego de eso, todo quedó perfecto. :)

Gracias una vez más por la ayuda prestada.
#9
Qué tal compañeros. Saludos.
Me paso por aquí de nuevo a ver si pueden ayudarme con una nueva duda.
Resulta que estoy creando mi librería de controles en un nuevo proyecto tipo Class Library. Ahora bien, después de ir creando controles he tenido que crear también métodos globales que los diferentes controles usan. No obstante, dichos métodos no son exclusivos para mis controles, sino funciones útiles que puedo usar en diferentes casos. En vista de eso, empecé a sentir la necesidad de estructurar mi librería en sublibrerías a fin de clasificarlas por categorías, tal cómo están las librerías de Microsoft. Así pues, ya no quiero que mis clases de controles y las de métodos formen parte de la misma librería base, sino de otras sublibrerías. Por ejemplo, quiero hacer una sublibrería Controls y otra Methods, y asignar todos mis controles a la clase Controls y los métodos a Methods. Así, al cargar controles de mi librería en un formulario X quedaría así: Friend WithEvents MyTextBox1 As MyLibrary.Controls.MyTextBox, en vez de: Friend WithEvents MyTextBox1 As MyLibrary.MyTextBox.
¿Se entiende la idea? ¿Cómo lo hago?
#10
Ya lo leí hermano, pero no entendí cómo aplicarlo a mi caso. Gracias.