2012-04-02 4 views
0

Ich habe folgende Methode, die ich dynamisch ActiveX-Steuerelement zu laden verwenden,Ausgabe in der dynamischen Laden von ActiveX in VB6.0

Dim ctl As Control 
Set ctl = Form1.Controls.Add("prog.id", "myctl") 
ctl.Visible = True 

Mit diesem Code-Control erfolgreich auf dem Formular angezeigt werden, aber wenn ich zu Zugriffsmethoden versuchen/Eigenschaften von Steuer ctl.mymethod() seine den Fehler geben, „Objekt nicht über diese Methode oder Eigenschaft unterstützen.“

Zweitens, wenn ich diesen Ansatz

Dim ctl As Object 
Set ctl = CreateObject("prog.id") 
Ctl.mymethod() 

Her Die Methode wurde erfolgreich aus dem Steuerelement aufgerufen, aber ich kann dieses Objekt nicht auf dem Formular anzeigen.

Bitte sagen Sie mir eine Lösung zu diesem Problem.

Edit:

die Verwendung approch nach ihrer auch den Fehler geben, wenn ich Methoden aufrufen, "Object does Unterstützung ........"

Dim ctl As Object 
Set ctl = Controls.Add("prog.id", "myctl") 
ctl.Visible = True 

Antwort

3

Don‘ t deklarieren Sie die Referenz als Control. Dadurch können Sie nur auf die Control Schnittstellenmitglieder zugreifen. Versuchen Sie stattdessen ctl als Object zu deklarieren und es wird dann vollständig spät gebunden sein.

Dim ctl As Object 
Set ctl = Controls.Add("COMCTL.ListViewCtrl", "myctl") 
ctl.Visible = True 
ctl.View = 2 
ctl.ListItems.Add , , "123" 
+0

danke für Ihre Antwort, aber mit zweiten Ansatz, wie kann ich dieses Steuerelement auf Formular hinzufügen? – Siddiqui

+0

Sie können nicht 'Controls.Add' verwenden, um zur Laufzeit ein Steuerelement zu einem Formular hinzuzufügen. – Deanna

+0

Bitte sehen Sie, dass ich meine Frage nach Ihrer Antwort bearbeitet habe. – Siddiqui

1

Wenn Sie eine Art Bibliothek (TLB) für die Steuerung, einen Verweis auf sie hinzufügen und versuchen, diese

Dim ctl As prog.id 
Set ctl = Controls.Add("prog.id", "myctl").Object 
ctl.mymethod 

Hinweis Nutzung von .Object Eigenschaft.

+0

Ich habe keine .tlb-Datei nur OCX, die auf dem System registriert ist. Ich möchte auf die Eigenschaften von ActiveX zugreifen, In ActiveX verwende ich diese Annäherung, um die Eigenschaften freizulegen ** Public Property Lassen Sie ShowSelection (bShow As Boolean) ** – Siddiqui

+0

Wie kann ich Tlb-Datei von OCX-Datei bekommen? – Siddiqui

+0

@Siddiqui Wenn das OCX mit VB6 erstellt wurde, hat es eine eingebettete TypeLib. Hast du deinem Projekt einen Verweis auf den OCX hinzugefügt? Wenn Sie dies getan haben, können Sie F2 drücken und die Ansicht "Objektbrowser" verwenden, und Sie sollten Ihr Steuerelement sehen, und Sie sollten in der Lage sein, es durch den Typnamen im Code zu referenzieren. – tcarvin

Verwandte Themen