Novato peleandose con atributo personalizado

13/12/2006 - 23:00 por René Pacios | Informe spam
Buenas grupo, antes de nada muchas gracias por cualquier aportación ,
por si me olvido al final del post :-)

Mi duda es la siguiente, en vs 2003, estoy realizando un formulario windows
forms para heredar de este mis otros formularios. Este formulario tiene una
serie de propiedades y métodos para extenderlos a las calses derivadas.
Pues bien una de estas propiedades es un arrayList( me valdría cualquier
otro tipo de colection que pudiese contener una clase sin métodos con solo
atributos), me gustaría que esta property se pudiese establecer su valor
desde la ventana de propiedades del Visual estudio, algo así como cuando
agregas un menu o un imageList y vas agregando los items,.
Lo más que conseguí fue definir la property como un array de mi clase, pero
al establecer los valores, después vulevo a abrirlo y los pierdo. creo que
hay un tag de <AttributeUsage... o <designer... Me estuve pelando con ellos
y no saqué nada en limpio.
Si alguien me pudiese hechar una mano, soy bastante novato.

Os posteo el código que llevo hasta ahora, puede que esté lleno de
comentarios, porque de tantas pruebas.

Muchas gracias de antemano.
Cualquier cosa que se os ocurra puede valer, soy Novato.

Salu2 René Pacios

Region "Atributos personalizadas"

'<AttributeUsage(AttributeTargets.All, Inherited:=True,
AllowMultiple:=True)> _

<Designer("System.Windows.Forms.Design.DocumentDesigner,
System.Windows.Forms.Design.DLL", _

GetType(System.Collections.ICollection)), DesignerCategory("Form")> _

Public Class mapeo

Inherits System.Attribute

Implements System.Collections.ICollection

Private _nombreColumna As String = String.Empty

Private _anchoColumna As Int32 = 0

Private _tituloColumna As String = String.Empty

Sub New()


End Sub

Sub New(ByVal nombreColumna As String, ByVal AnchoColumna As Int32, ByVal
TituloColumna As String)

_nombreColumna = nombreColumna

_anchoColumna = AnchoColumna

_tituloColumna = TituloColumna

End Sub

Public Property nombreColumna() As String

Get

Return _nombreColumna

End Get

Set(ByVal Value As String)

_nombreColumna = Value

End Set

End Property

Public Property AnchoColumna() As Int32

Get

Return _anchoColumna

End Get

Set(ByVal Value As Int32)

_anchoColumna = Value

End Set

End Property

Public Property TituloColumna() As String

Get

Return Me._tituloColumna

End Get

Set(ByVal Value As String)

_tituloColumna = Value

End Set

End Property

Public Sub CopyTo(ByVal array As System.Array, ByVal index As Integer)
Implements System.Collections.ICollection.CopyTo

End Sub

Public ReadOnly Property Count() As Integer Implements
System.Collections.ICollection.Count

Get

End Get

End Property

Public ReadOnly Property IsSynchronized() As Boolean Implements
System.Collections.ICollection.IsSynchronized

Get

End Get

End Property

Public ReadOnly Property SyncRoot() As Object Implements
System.Collections.ICollection.SyncRoot

Get

End Get

End Property

Public Function GetEnumerator() As System.Collections.IEnumerator Implements
System.Collections.IEnumerable.GetEnumerator

End Function

End Class

#End Region

#Region "propiedades privadas"

Private _MapeadoDeColumnas As mapeo()

Private _aMapeoColumnas As New ArrayList

#End Region

#Region "Propiedades"

'<mapeo()> _

'<mapeo("Columna", 0, "Titulo"), mapeo("Columna", 0, "Titulo"),
mapeo("Columna", 0, "Titulo")> _

'<Designer(GetType(mapeo)),AttributeUsage (AttributeTargets.Property )> _

'<Design.Serialization.RootDesignerSerializer()> _

Public Property maPeadoDeColumnas() As mapeo

Get


End Get

Set(ByVal value As mapeo)


End Set

End Property





#End Region



Muchas gracias y cualquier alluda puede valer

Preguntas similare

Leer las respuestas

#1 Miguel Lima
13/12/2006 - 23:28 | Informe spam
Leelo y no te arrepentiras...
POR FAVOR ANTES DE ELIMINAR ESTE MENSAJE, LEAN PRIMERO
Y TOMEN LA DECISIÓN DESPUÉS.

ESTO TE PUEDE AYUDAR A PAGAR TUS DEUDAS O TUS ESTUDIOS

Hola amigos:

Esto es lo me pasó días atrás, mientras navegaba por estas páginas de
noticias, así como usted lo está haciendo ahora. Se me apareció un artículo
similar a este que decía:

»Usted puede recibir miles de dólares en pocas semanas con una inversión de
US $6.00 dólares (seis dólares)». Enseguida pensé: «¡Oh no, otra estafa
más?» Pero como la mayoría de nosotros, la curiosidad pudo más y seguí
leyendo; seguía diciendo: « Usted enviará US $1.00 (un dólar) a cada uno de
los 6 nombres y direcciones mencionados en este artículo. Después, anote
usted su nombre y dirección al final de la lista reemplazando al numero 6, y
envíe o ponga este artículo en por lo menos 200 NEWSGROUPS o foros (hay
miles de estos en todo el mundo). También valen páginas web.

Nota: Si te encuentras en otro país, debes cambiar tu moneda nacional a
dólares, pues en todos los países cambian dólares y es más fácil para todos.

No existe ningún truco, la diferencia de este sistema y otros, es que usted
tiene una lista de 6 en vez de 5, esto significa que el promedio de ayuda
será aproximadamente ¡¡¡¡¡15 veces mayor!!!!!

Después de pensarlo una y otra vez y de consultarlo con unos amigos, decidí
probarlo.
Siete días después, empecé a recibir DINERO por correo!!!!
Para el final de la segunda semana había recibido un total de US $1,000 (mil
dólares)!!!!!! No lo PODÍA CREER!! En la tercera semana $10,000 (diez mil) y
todavía seguía llegando más!!! En mi cuarta semana tenía un total de $41,000
dólares y aún sigue llegando más ayuda (en mi casa se la pasan abriendo
sobres y yo consiguiendo «NEWSGROUP» o foros para continuar ayudando a más
gente y retribuir la ayuda recibida hasta este momento. ESTO SE PUSO SERIO.

AHORA PERMÍTANME EXPLICARLES COMO FUNCIONA ESTO
Y LO MAS IMPORTANTE. EL POR QUÉ FUNCIONA EXCELENTEMENTE

Usted asegúrese de imprimir este artículo AHORA, para sacar toda la
información a medida que la necesite. El proceso es muy fácil y consiste en
3 (tres) sencillos pasos:

PASO Nº.1: Obtenga 6 hojas de papel y escriba en cada una de ellas: «FAVOR
DE INCLUIRME EN SU LISTA DE CORRESPONDENCIA O E-MAIL».

Ahora consiga 6 billetes de US $1 (un dólar) e introduzca cada dólar en un
sobre, procurando envolverlo con la hoja de manera que el billete no se vea
a través del sobre!!, puede envolverlo tambien en papel carbon para que no
se note con la luz.

Envíe los 6 sobres a las siguientes direcciones:


1. Laura Origaen
14206 Green Gable Ct Orlando Fl 32824 USA

2. Andrea Leblanc
Nueva Maturana 0495, Villa Alemana
Quinta Región, CHILE

3. Maria Jesús García
C/ Pla de Roses 90 Empúria Brava 17487 Girona (España)

4. José Jorge Anes Rodríguez
C/ Castillo Gauzón Nº 13 - 6º B - Piedras Blancas - 33450 - Castrillón -
Asturias - (España)

5. Rubén Élez Fernández
Pº Alberto Palacios 78 - 1ºB - (28021) MADRID - ESPAÑA

6. Miguel Lima.
15 Ave A 36-45 Zona 12, Cond. Villasol II Apto 2342, Guatemala, Guatemala.

PASO Nº 2: Ahora elimine el numero 1 de lista de arriba y mueva los otros
nombres un numero para arriba ( el 6 se convierte en el 5, y el 5 se
convierte en el 4, etc...) y agregue su NOMBRE Y SU DIRECCIÓN en el 6 de la
lista.
PASO Nº 3: Cambie todo lo que crea conveniente de este artículo, pero trate
de mantenerlo lo más cercano posible al original. Ahora ponga su artículo en
por lo menos 200 NEWSGROUP o foros (existen más de 24,000,000 Newsgroups).
SI NO PUEDES CONSEGUIR DOLARES HAZLO CON EUROS, tú decides 1 dolar o 1 euro.
No enviés monedas porque se ve que es dinero en el sobre.

ESO ES TODO!!! y funciona. Increible
Respuesta Responder a este mensaje
#2 Locknar
14/12/2006 - 12:58 | Informe spam
En la backingtrack del arrayList mira si la property cabage esta a true.
Si es así me temo que no te servirá el arrayList.
Saludos
"René Pacios" escribió en el mensaje
news:
Buenas grupo, antes de nada muchas gracias por cualquier aportación ,
por si me olvido al final del post :-)

Mi duda es la siguiente, en vs 2003, estoy realizando un formulario
windows forms para heredar de este mis otros formularios. Este formulario
tiene una serie de propiedades y métodos para extenderlos a las calses
derivadas.
Pues bien una de estas propiedades es un arrayList( me valdría
cualquier otro tipo de colection que pudiese contener una clase sin
métodos con solo atributos), me gustaría que esta property se pudiese
establecer su valor desde la ventana de propiedades del Visual estudio,
algo así como cuando agregas un menu o un imageList y vas agregando los
items,.
Lo más que conseguí fue definir la property como un array de mi clase,
pero al establecer los valores, después vulevo a abrirlo y los pierdo.
creo que hay un tag de <AttributeUsage... o <designer... Me estuve pelando
con ellos y no saqué nada en limpio.
Si alguien me pudiese hechar una mano, soy bastante novato.

Os posteo el código que llevo hasta ahora, puede que esté lleno de
comentarios, porque de tantas pruebas.

Muchas gracias de antemano.
Cualquier cosa que se os ocurra puede valer, soy Novato.

Salu2 René Pacios

Region "Atributos personalizadas"

'<AttributeUsage(AttributeTargets.All, Inherited:=True,
AllowMultiple:=True)> _

<Designer("System.Windows.Forms.Design.DocumentDesigner,
System.Windows.Forms.Design.DLL", _

GetType(System.Collections.ICollection)), DesignerCategory("Form")> _

Public Class mapeo

Inherits System.Attribute

Implements System.Collections.ICollection

Private _nombreColumna As String = String.Empty

Private _anchoColumna As Int32 = 0

Private _tituloColumna As String = String.Empty

Sub New()


End Sub

Sub New(ByVal nombreColumna As String, ByVal AnchoColumna As Int32, ByVal
TituloColumna As String)

_nombreColumna = nombreColumna

_anchoColumna = AnchoColumna

_tituloColumna = TituloColumna

End Sub

Public Property nombreColumna() As String

Get

Return _nombreColumna

End Get

Set(ByVal Value As String)

_nombreColumna = Value

End Set

End Property

Public Property AnchoColumna() As Int32

Get

Return _anchoColumna

End Get

Set(ByVal Value As Int32)

_anchoColumna = Value

End Set

End Property

Public Property TituloColumna() As String

Get

Return Me._tituloColumna

End Get

Set(ByVal Value As String)

_tituloColumna = Value

End Set

End Property

Public Sub CopyTo(ByVal array As System.Array, ByVal index As Integer)
Implements System.Collections.ICollection.CopyTo

End Sub

Public ReadOnly Property Count() As Integer Implements
System.Collections.ICollection.Count

Get

End Get

End Property

Public ReadOnly Property IsSynchronized() As Boolean Implements
System.Collections.ICollection.IsSynchronized

Get

End Get

End Property

Public ReadOnly Property SyncRoot() As Object Implements
System.Collections.ICollection.SyncRoot

Get

End Get

End Property

Public Function GetEnumerator() As System.Collections.IEnumerator
Implements System.Collections.IEnumerable.GetEnumerator

End Function

End Class

#End Region

#Region "propiedades privadas"

Private _MapeadoDeColumnas As mapeo()

Private _aMapeoColumnas As New ArrayList

#End Region

#Region "Propiedades"

'<mapeo()> _

'<mapeo("Columna", 0, "Titulo"), mapeo("Columna", 0, "Titulo"),
mapeo("Columna", 0, "Titulo")> _

'<Designer(GetType(mapeo)),AttributeUsage (AttributeTargets.Property )> _

'<Design.Serialization.RootDesignerSerializer()> _

Public Property maPeadoDeColumnas() As mapeo

Get


End Get

Set(ByVal value As mapeo)


End Set

End Property





#End Region



Muchas gracias y cualquier alluda puede valer


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