Toon posts:

[VB.NET 2005] String converteren naar property

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil variabel property's van controls kunnen instellen in visual basic.net 2005.
Om een simpel voorbeeld te geven de text property van een textbox.
Normaal doe je dan textbox.text maar ik wil de property "text" dus variabel kunnen gebruiken.
Dus dan krijg je zoiets als textbox.variabelenaam = "dan hier een tekst".
Weet iemand hoe je dit kan realiseren in vb.net 2005 ?
Ik heb op verschillende zoektermen gezocht op google maar weinig tot niets gevonden.
Ik heb 1 website gevonden die zijn eigen properties maakt, dat is niet helemaal de bedoeling.
Die site is: http://www.codeproject.com/vb/net/DropDownPropertyEditor.asp
Ik hoef geen eigen properties te maken maar gewoon de huidige van de controls, alleen dan wil ik ze variabel aanspreken. Ik hoop dat ik mijn probleem een beetje duidelijk heb beschreven, zo niet, vraag het dan gerust dan probeer ik het te verduidelijken.

Verwijderd

Miscchien gewoon de getter & setter van property 'variablenaam' doorverwijzen naar de text property ?

[ Voor 33% gewijzigd door Verwijderd op 18-04-2007 15:21 ]


  • cspare
  • Registratie: Oktober 2006
  • Laatst online: 29-07 22:19

cspare

What the deuce?!

Beetje afhankelijk van je toepassing kan je reflectie gebruiken of een propertygrid

The one who says it cannot be done, should never interrupt the one who is doing it.


Verwijderd

Topicstarter
ter verduidelijk heb ik een voorbeeld functie geschreven zoals ik die graag zou willen hebben:

Visual Basic .NET:
1
2
3
    Function PropertySetter(ByVal ctrl As Control, ByVal prop As String, ByVal waarde As String)
        ctrl.prop = waarde
    End Function

  • cspare
  • Registratie: Oktober 2006
  • Laatst online: 29-07 22:19

cspare

What the deuce?!

Verwijderd schreef op woensdag 18 april 2007 @ 15:28:
ter verduidelijk heb ik een voorbeeld functie geschreven zoals ik die graag zou willen hebben:
Dan moet je inderdaad reflectie hebben. Google weet hier heel veel over ;)

The one who says it cannot be done, should never interrupt the one who is doing it.


Verwijderd

Topicstarter
cspare schreef op woensdag 18 april 2007 @ 15:21:
Beetje afhankelijk van je toepassing kan je reflectie gebruiken of een propertygrid
met een propertygrid heb je nog steeds geen variabele properties, die geef je alsnog van te voren op.

Verwijderd

Topicstarter
cspare schreef op woensdag 18 april 2007 @ 15:31:
[...]


Dan moet je inderdaad reflectie hebben. Google weet hier heel veel over ;)
oke bedankt, ga ik daar verder op doorzoeken

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op woensdag 18 april 2007 @ 15:32:
[...]
met een propertygrid heb je nog steeds geen variabele properties, die geef je alsnog van te voren op.
Onwaar. Een propertygrid geef je enkel en alleen een selectedobject en dan zal de propertygrid (m.b.v. reflectie) zelf de juiste properties van het object tonen.


Visual Basic .NET:
1
2
MyPropertyGrid.SelectedObject = MyTextBox  'Geeft alle properties van de textbox weer
MyPropertyGrid.SelectedObject = MyObject   'Geeft alle properties van je object weer
Verwijderd schreef op woensdag 18 april 2007 @ 15:34:
[...]
oke bedankt, ga ik daar verder op doorzoeken
Wil je dat voortaan in de vorige post doen m.b.v. de edit knop ( Afbeeldingslocatie: http://gathering.tweakers.net/global/templates/tweakers/images/icons/edit.gif ) als die post nog geen 2 minuten oud is? ;)

[ Voor 49% gewijzigd door RobIII op 18-04-2007 15:42 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Ik heb de oplossing gevonden:
Visual Basic .NET:
1
2
3
4
5
6
7
Imports System.ComponentModel

        Dim o As Object = TextBox1
        Dim bg As PropertyDescriptor = TypeDescriptor.GetProperties(o)("Text")
        Dim c As TypeConverter = bg.Converter
        Dim v As Object = c.ConvertFromString("hallo allemaal")
        bg.SetValue(o, v)
Bedankt voor jullie hulp

p.s. Let op de hoofdletter gevoeligheid van de PropertyNaam, in dit geval "Text".
Pagina: 1