Saber si un objeto tiene una propiedad determinada

11/07/2006 - 17:43 por Hugo Gsell | Informe spam
Estoy haciendo una clase genérica que recorre los objetos de un formulario
normalmente textbox y checkbox. pero pueden haber otros.
El tema es que esta clase habilitará o inhabilitará el acceso a la propiedad
readonly en el caso del textbox y la propiedad chequed en el caso del
checkbox-. el tema es cuando estoy "recorriendo los objetos de mi
formulario" dado un objeto necesito saber si el mismo tiene la propiedad
readonly... o la chequed recordemos que en mi ejemplo generico puede
haber un grupo con propiedad chequed

For i = 0 To Me.Controls.Count - 1
Ctrl = Me.Controls(i)
If TypeOf Ctrl Is TextBox Then
CType(Ctrl, TextBox).ReadOnly =Valor'este viene como
parametro
EndIf
EndIf
lo que necesito es algo como
If ExistePropiedad("readonly") then

Hugo A. gsell
Sgo del Estero
Argentina

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
12/07/2006 - 09:16 | Informe spam
"Hugo Gsell" wrote in message
news:
Estoy haciendo una clase genérica que recorre los objetos de un formulario
normalmente textbox y checkbox. pero pueden haber otros.
El tema es que esta clase habilitará o inhabilitará el acceso a la
propiedad readonly en el caso del textbox y la propiedad chequed en el
caso del checkbox-. el tema es cuando estoy "recorriendo los objetos
de mi formulario" dado un objeto necesito saber si el mismo tiene la
propiedad readonly... o la chequed recordemos que en mi ejemplo
generico puede haber un grupo con propiedad chequed

For i = 0 To Me.Controls.Count - 1
Ctrl = Me.Controls(i)
If TypeOf Ctrl Is TextBox Then
CType(Ctrl, TextBox).ReadOnly =Valor'este viene como
parametro
EndIf
EndIf
lo que necesito es algo como
If ExistePropiedad("readonly") then




Imports System.Reflection
...

Type t = Ctrl.GetType()
PropertyInfo p = t.GetProperty("ReadOnly")
If p Is Nothing Then
'La propiedad no existe
Else
'Existe
End If
Respuesta Responder a este mensaje
#2 Alberto Poblacion
12/07/2006 - 10:38 | Informe spam
"Alberto Poblacion" (yo mismo) wrote in message
news:
Type t = Ctrl.GetType()
PropertyInfo p = t.GetProperty("ReadOnly")
If p Is Nothing Then
'La propiedad no existe
Else
'Existe
End If



Perdón, me contesto a mi mismo, pero es que debía estar medio dormido
cuando escribí lo anterior, y he mezclado la sintaxis de C# con la de Visual
Basic. Obviamente donde dice lo de "Type t =..." debe decir "Dim t as Type =
..." y lo mismo con la linea siguiente.

Para compensar, a continuación pongo una función "ExistePropiedad":

Public Function ExistePropiedad(objeto as Object, propiedad as String)
as Boolean
Return Not(objeto.GetType().GetProperty(propiedad) Is Nothing)
End Function
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida