Bonjour à tous,
Dans un document Writer, j'ai créé une ListBox alimentée par une base de donnée. J'ai créé une macro que j'assigne à l'évènement "Lors du déclenchement" de la listbox pour récupérer la valeur de la zone de liste et l'insérer dans ma page de texte. Ceci marche sans problème. Mais après avoir fait mon choix, il faut que je clique dans ma page de texte pour pouvoir continuer à taper mon texte, ce qui est assez fastidieux...
Donc je souhaiterais une fois que j'ai fait mon choix dans la listbox que celle-ci perde le focus et que ce soit ma zone de texte qui soit activée automatiquement. En fait je souhaiterais que le focus quitte ma DrawPage (endroit où se trouve ma Listbox qui fait partie d'un formulaire) pour revenir sur thisComponent.text .
J'ai vu la méthode SetFocus mais dans mon cas elle n'est pas appropriée.
Merci pour vos éclairages,
A+,
[Résolu] [Writer] Focus depuis une liste vers la page
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
ThierryM
- Membre enthOOusiaste

- Messages : 439
- Inscription : 26 nov. 2006 11:29
- Localisation : Les Corbières
[Résolu] [Writer] Focus depuis une liste vers la page
Dernière modification par ThierryM le 19 juil. 2007 08:18, modifié 3 fois.
LibreOffice Version: 24.8.4.2 / Linux Mint Mate Edition 21.3 / Pourquoi privilégier les formats de fichiers ouverts ?
-
ThierryM
- Membre enthOOusiaste

- Messages : 439
- Inscription : 26 nov. 2006 11:29
- Localisation : Les Corbières
J'avance un petit peu...
D'après l'api, la solution devrait se trouver dans com.sun.star.frame mais pour l'instant je rame. Ma piste :
- getModel ?
D'après ce que j'ai compris dans le SDK chapitre 6 (Office Development) concernant les Frame-Controller-Model (OpenOffice.org_2.2_SDK/docs/DevelopersGuide/OfficeDev/...)
Un document writer est constitué de plusieurs couches :
- une couche principale : là où on tape son texte (il est appelé Model dans l'API)
- une couche de dessin DrawPage (est-ce le Frame ?) : qui contient les dessins mais aussi les contrôles de formulaire ( les controllers)
Donc ma zone de liste ayant le focus, il faudrait que le focus passe sur le model (partie qui contient le texte principal du document writer). Il doit y avoir une instruction simple qui permette de naviguer entre les différentes couches mais je ne l'ai pas trouvée...
Toutes les propositions seront les bienvenues ...
A+
D'après l'api, la solution devrait se trouver dans com.sun.star.frame mais pour l'instant je rame. Ma piste :
- getModel ?
D'après ce que j'ai compris dans le SDK chapitre 6 (Office Development) concernant les Frame-Controller-Model (OpenOffice.org_2.2_SDK/docs/DevelopersGuide/OfficeDev/...)
Un document writer est constitué de plusieurs couches :
- une couche principale : là où on tape son texte (il est appelé Model dans l'API)
- une couche de dessin DrawPage (est-ce le Frame ?) : qui contient les dessins mais aussi les contrôles de formulaire ( les controllers)
Donc ma zone de liste ayant le focus, il faudrait que le focus passe sur le model (partie qui contient le texte principal du document writer). Il doit y avoir une instruction simple qui permette de naviguer entre les différentes couches mais je ne l'ai pas trouvée...
Toutes les propositions seront les bienvenues ...
A+
LibreOffice Version: 24.8.4.2 / Linux Mint Mate Edition 21.3 / Pourquoi privilégier les formats de fichiers ouverts ?
-
bm92
- ManitOOu

- Messages : 2562
- Inscription : 26 nov. 2005 13:42
Bonjour,
Un petit truc: si on ne t'a pas encore répondu, ne te fais pas une réponse pour ajouter des informations. Car on peut croire en listant les messages que tu as résolu ton problème... Fais plutôt l'édition du message initial.
Pour remettre le focus sur le document :
______
Bernard
Un petit truc: si on ne t'a pas encore répondu, ne te fais pas une réponse pour ajouter des informations. Car on peut croire en listant les messages que tu as résolu ton problème... Fais plutôt l'édition du message initial.
Pour remettre le focus sur le document :
Code : Tout sélectionner
dim w as object
w = thisComponent.CurrentController.Frame.ContainerWindow
w.setFocusBernard
-
ThierryM
- Membre enthOOusiaste

- Messages : 439
- Inscription : 26 nov. 2006 11:29
- Localisation : Les Corbières
Merci beaucoup Bernard, ça marche impeccable.
Je n'y serais pas arrivé tout seul, même si j'étais sur la piste.
En fait, je "me" fais une réponse (surtout pour les autres) pour montrer que j'avance dans mes recherches. Comme en général, je ne relis pas les messages initiaux, j'ai peur que mes avancées passent inaperçues si je modifie mon message initial. Par contre, quand je vois qu'un fil reçoit des réponses, je m'y intéresse pour voir les propositions qui sont faites.
Et puis j'utilise la balise [Résolu] quand la solution a été donnée.
Encore merci et à+
Je n'y serais pas arrivé tout seul, même si j'étais sur la piste.
En fait, je "me" fais une réponse (surtout pour les autres) pour montrer que j'avance dans mes recherches. Comme en général, je ne relis pas les messages initiaux, j'ai peur que mes avancées passent inaperçues si je modifie mon message initial. Par contre, quand je vois qu'un fil reçoit des réponses, je m'y intéresse pour voir les propositions qui sont faites.
Et puis j'utilise la balise [Résolu] quand la solution a été donnée.
Encore merci et à+
LibreOffice Version: 24.8.4.2 / Linux Mint Mate Edition 21.3 / Pourquoi privilégier les formats de fichiers ouverts ?