libreria de controles, como recojer los valores de un array desde la ventana de propiedades?

30/08/2004 - 16:54 por david | Informe spam
Hola

Estoy haciendo un control que recoge una serie de datos y los almacena en un
array, me gustaría saber como se hace para recogerlo desde la ventana de
propiedades como un ListBox en la propiedad Items.

supongo que tendré de indicar el tipo en esta línea, pero ni idea... :P
<Bindable(True), Category("Appearance"), DefaultValue("")> Property
[Texto]() As String


alguien me lo puede explicar o indicarme alguna URL donde pueda leer como se
hace?

Muchas Gracias
David

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
30/08/2004 - 19:02 | Informe spam
Debes crear un editor (o usar uno existente) para la propiedad. Por ejemplo:

<Editor("System.Window.Forms.Design.StringCollectionEditor, System.Design",
_
GetType(System.Drawing.Design.UITypeEditor))> _
Public Property Items() As String()
Get
Return _items
End Get
Set(ByVal Value As String())
_items = Value
End Set
End Property

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 david
31/08/2004 - 09:14 | Informe spam
Tienes idea de donde puedo conseguir algún ejemplo parecido?


El editor debe ser un form? o el .net trae un Editor de editores?


"Eduardo A. Morcillo [MS MVP VB]" <emorcilloATmvps.org> escribió en el
mensaje news:%
Debes crear un editor (o usar uno existente) para la propiedad. Por


ejemplo:

<Editor("System.Window.Forms.Design.StringCollectionEditor,


System.Design",
_
GetType(System.Drawing.Design.UITypeEditor))> _
Public Property Items() As String()
Get
Return _items
End Get
Set(ByVal Value As String())
_items = Value
End Set
End Property

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo


Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
31/08/2004 - 17:45 | Informe spam
El editor debe ser un form? o el .net trae un Editor de editores?



El editor consta de dos parte, un formulario que es donde el usuario ingresa
los valores y una clase derivada de UITypeEditor que da acceso al
formulario. Por ejemplo:

En la clase le asocias el editor a la propiedad:

<Editor(GetType(StringTypeEditor),
GetType(System.Drawing.Design.UITypeEditor))> _
Overrides Property Text() As String
Get
Return MyBase.Text
End Get
Set(ByVal value As String)
MyBase.Text = value
End Set
End Property

La clase del editor seria asi:

Public Class StringTypeEditor
Inherits System.Drawing.Design.UITypeEditor

Public Overloads Overrides Function GetEditStyle( _
ByVal context As System.ComponentModel.ITypeDescriptorContext) As
System.Drawing.Design.UITypeEditorEditStyle

' El editor muestra una ventana modal
Return System.Drawing.Design.UITypeEditorEditStyle.Modal

End Function

Public Overloads Overrides Function EditValue( _
ByVal context As System.ComponentModel.ITypeDescriptorContext, _
ByVal provider As System.IServiceProvider, _
ByVal value As Object) As Object

' Compruebo que se le haya pasado un contexto
' con la instancia del componente
If Not context Is Nothing AndAlso _
Not context.Instance Is Nothing Then

' Solo edito la propiedad si es de tipo String
If context.PropertyDescriptor.PropertyType Is GetType(String)
Then

' Creo el formulario
Dim f As New StringEditor

' Le paso el valor a editar
f.texto.Text = CStr(value)

' Devuelvo el nuevo valor si se
' presiono Aceptar en el formulario
If f.ShowDialog() = DialogResult.OK Then
Return f.texto.Text
End If

End If

End If

End Function

End Class

Y el formulario StringEditor seria simplemente un formulario con un TextBox
y los botones Aceptar y Cancelar (puede ser un formulario tan complicado
como quieras o necesites).

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida