none
Composed .NET Control Focus RRS feed

  • Frage

  • Hallo,

    Es gibt bei uns ein kleines Problem mit dem Fokusverhalten eines .NET-Controls in einem MFC-Container.
    Das .NET Control bettet ein weiteres inneres Control in sich ein und wird als ActiveX-Control in einen in MFC implementierten Container eingebettet.
    Das Control soll, soweit ich das verstanden haben, nach außen so aussehen und sich so verhalten, als würde es sich nur um eins und nicht ein verschachteltes handeln.

    Bettet man das Control in VB 6.0 ein, funktioniert das Ganze auch bestens. Das Control bekommt per Tab/Click den Fokus, reagiert
    in jeder Situation korrekt auf Tastatureingaben und liefert korrekt alle Got/LostFokus-Events.
    (Scheinbar wird der Fokus in VB irgendwie an das innere Control weitergeleitet).

    Im  MFC-Container funktioniert das natürlich nicht. Hier gibt es Probleme im Zusammenhang mit dem Fokus des äußeren und des inneren Controls,
    speziell mit Got/Lost Focus Events. Beispiel: Beim Tabben erhält das äußere Control den Fokus, klickt man auf des Control, bekommt das das innere den Fokus.
    Das LostFokus-Verhalten ist mehr oder minder inkonsistent, das innere Control reagiert nur auf Tastatureingaben, wenn man es per Klick aktiviert.

    Nun meine Fragen:
    Ich bin auf der Suche nach Informationen, was man bei der Implementierung eines ActiveX-Containers beim Umgang mit solchen zusammengesetzten Controls beachten muss. Gibt es Möglichkeiten diese zu erkennen? Muss der Fokus durch den Container direkt auf das erste enthaltene Control gesetzt werden oder ist das die Zuständigkeit des äußeren (Composite)-Controls (macht also der Container oder das Control etwas verkehrt)? Wie ist das Fokus-Verhalten bei Composite-Controls definiert?

    Ich habe jetzt schon ein eine Zeit lang gegoogelt, finde aber keine wirklich brauchbaren Informationen.
    Ich wäre sehr dankbar für Hinweise, wo ich derartige Informationen herbekommen kann. Vielen Dank schon mal im Voraus.

    Viele Grüße,
    Alex

    Freitag, 16. November 2012 09:24