Olivier Eckmann Posté(e) le 8 janvier 2018 Posté(e) le 8 janvier 2018 Bonjour, Je me prends le chou depuis ce matin avec des plantages à répétition.J'essaie d'écrire une fonction qui affiche dans une palette perso une arborescence pour gérer les présentations.Le problème se pose au changement de dessin en cours.J'ai ajouté un réacteur du genre : _parent.DwgBecameCurrent += new DocumentCollectionEventHandler(_parent_DwgBecameCurrent);Dans ma fonction de retour, j'ai un comportement un peu bizarre (ou en tout cas surprenant pour moi).Dans la fonction de retour, je reçois une variable e : void _parent_DwgBecameCurrent(object sender,DocumentCollectionEventArgs e)En fait je passe 3 fois dans cette fonction et au 1er passage le document renvoyé par e.Document est mon ancien document alors que AcadApp.DocumentManager.MdiActiveDocument me renvoie le nouveau document (que je viens de rendre courant). Est-ce normal? Je m'en suis sorti, mais j'ai perdu pas mal de temps avec ça et j'aimerais comprendre si j'ai fait une bêtise quelque part. Je n'aime pas rester sur une solution qui fonctionne mais que je ne maîtrise (comprends) pas. Olivier
(gile) Posté(e) le 8 janvier 2018 Posté(e) le 8 janvier 2018 Salut, Je préfère utiliser DocumentActivated qui n'est lancé qu'une fois quand on passe d'un document ouvert à un autre mais deux fois quand on ouvre un nouveau document.On peut facilement éviter de gérer l'évènement deux fois en comparant e.Document avec le document précédemment actif. // champ privé Document acdoc; // constructeur public LayoutsTab() { var docMgr = Application.DocumentManager; acdoc = docMgr.MdiActiveDocument; docMgr.DocumentActivated += OnDocumentActivated; Layouts = GetLayoutNames(acdoc.Database); } // gestionnaire d'évènement private void OnDocumentActivated(object sender, DocumentCollectionEventArgs e) { if (e.Document != null && e.Document != acdoc) { acdoc = e.Document; Layouts = GetLayoutNames(acdoc.Database); } } Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Olivier Eckmann Posté(e) le 8 janvier 2018 Auteur Posté(e) le 8 janvier 2018 Salut Gilles, merci du tuyau, je vais explorer cette solution. Olivier
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant