2017-12-25 3 views
1

Ich versuche, etwas Logik in VB6-Code zu ändern, und ich muss Steuerelementeigenschaft durch Eigenschaftsname erhalten. Ähnlich wie Access control.properties Eigentum.erhalten Steuerelementeigenschaften VB6

Dim propertyName as string 
propertyName ="Visible" 
Me.Controls("mnuRepots").Properties(propertyName)="True" 

Aber meine VB6 sagt Objekt unterstützt diese Eigenschaft oder Methode nicht

Antwort

3

Um eine Methode auszuführen oder eingestellt unterstützt oder eine Eigenschaft auf einem dynamischen Namen basiert, können Sie die CallByName function wie folgt verwenden :

CallByName mnuReports, "Visible", vbLet, True 

Beachten Sie, dass es durch die Verwendung polymorphism oder eine einfachere Select Case-Anweisung unterschiedliche Codes in verschiedenen Fällen zu rufen fast immer eine bessere Lösung ist. Das dynamische Laden von Code kann das Lesen von Code erheblich erschweren und (wenn Sie jemals Eingaben von einer nicht vertrauenswürdigen Quelle vornehmen) einen einfachen Ort darstellen, an dem Sie Methoden aufrufen können, die nicht von Ihnen aufgerufen werden sollen. was zu Sicherheitslücken führt.