Activex Teilelement

DerStauner

Erfahrenes Mitglied
Also, ich habe ein activex, das aus 2 textboxen besteht. ich habe dieses in mein Projekt integriert, wo natürlich auf die 2 textboxen nicht zurückgegriffen werden kann, sondern nur auf ein control, nämlich auf das activex control. So, meine Frage wäre, wie kann ich auf die einzelnen Bauelemente des activex controls im Hauptprojekt zurückgreifen
 
sofern du alles richtig gemacht hast, gebieten die Gesetze der Objekt-Orientierung dass es irgendwie in der Form gehen sollte:

myActiveXControl.TextBox1.Text="Irgendwas"

So in der Art. Sorry, bin immer noch im Urlaub :) Kein Testen moeglich.
 
hmm, das einzige was mir dazu noch einfaellt: fuer dein ActiveX zwei Public Eigenschaften erstellen (Bsp. TExt1, Text2) und diese dann innerhalb des ActiveX an die Textboxen durchleiten.

im ActiveX:
Public Property Let Text1(argText1 as String)
Textbox1.Text=argText1
End Property

Public Property Get Text1 as String
Text1=Textbox1.Text
End Property

Der Aufruf waere dann in der Art:
myActiveX.Text1="Irgendwas"
 
Hab' ich auch daran gedacht, aber diese Lösung würde mich nicht weiterbringen.

Also, ich möchte folgendes verwirklichen:

ich habe ein activex control (zwei Textboxen nebeneinander, ohne Lücke dazwischen).
Nehmen wir an, dass diese 2 Textboxen eine Zeile bilden. Der User kann mit Tab von einer Zelle (textbox1) zur anderen (textbox2) springen. Inzwischen schreibt er Daten in textbox1 und in textbox2. Wenn er dann im textbox2 Enter drückt, dann lade ich dynamisch ein neues activex control, und so habe ich meine zweite Zeile. Also ich möchte eine Art Tabelle, am Anfang nur mit einer Zeile, und wenn der User in der letzten Zelle der Tabelle Enter drückt, dann kommt die nächste Zeile.

Was Du geschrieben hast, wäre auch gut, aber in diesem Fall muss ich andauernd abfragen (vielleicht mit einer Schleife im Load Event), ob in textbox2 Enter gedrückt wurde, und wenn ja, dann ein neues activex control laden.
 
und wo ist da das Problem? Jede Textbox hat KeyDown, KeyUp und KeyPress wo du abfragen kannst welche Taste gedrueckt wurde. In diesem Zusammenhang gilt es auch Keypreview der Form zu beachten. Das Einzige worauf du noch achten musst ist, dass es nicht eventuell mit einem Default-Button kollidiert. Nix mit Schleife im Load Event
 
ja, das weiss ich.

aber wie gesagt, das activex control ist EIN Control (bestehend aus zwei Textboxen).

Und wenn ich das activex control editiere (wo ich auf die 2 Textboxen zurückgreifen kann), dort kann ich natürlich im KeyPress Event der TextBox2 schreiben:

If KeyAscii=13 then MsgBox "Enter wurde gedrück."

Aber in diesem Event kann ich keine neue Instanz des activex controls laden.
 
Dann bau doch ein public Event fuer das ActiveX-Control, welches du aus dem Keypress der Textbox2 abschiesst wenn ENTER gedrueckt wurde.

Public Event EnterPressed

Privat Sub TextBox2_Keypress blablab

if Keyascii=13 then RaiseEvent EnterPressed

End Sub

Ausserhalb des ActiveX (Also im Formular-Code) muesstes du jetzt das Event des ActiveX finden, und von dort eine neue Instanz erstellen koennen
 
ich habe es einfacher gelöst.

Ich nahm das KeyPress Event, habe dem KeyPress Event der 2. TextBox zugeordnet innerhalb des activex Controls, und dann reicht es nur, wenn ich im KeyPress Event des activex Controls schreibe: "If KeyAscii=vbKeyReturn Then ... "
 

Neue Beiträge

Zurück