2015-10-04 2 views
0

Est-ce que quelqu'un sait comment afficher la boîte de dialogue de sélection rapide en cliquant sur le bouton sur mon nouveau formulaire autocad.AutoCAD C# appeler le dialogue de sélection rapide à partir de mon nouveau formulaire

J'utilise la méthode SendStringToExecute, mais il envoie la commande après fermé la boîte de dialogue

AcadApp.DocumentManager.MdiActiveDocument.SendStringToExecute("__QSELECT", true, true, false); 

la dose de code ci-dessus fonctionne pas, tout le monde peut aider merci à tous

+0

Version d'AutoCAD? – Maxence

+0

Vous devez d'abord masquer le formulaire car je suppose que c'est modal. – Miiir

+0

Autocad 2014 @Maxence –

Répondre

1

Je pense que cela est impossible . Vous ne pouvez pas exécuter une commande lorsqu'une boîte de dialogue modale est affichée.

Vous pouvez essayer de cacher (Editor.StartUserInteraction) et utiliser de façon synchrone pour envoyer une commande à AutoCAD (comme P/Invoke de acedCmd) mais je l'ai essayé et il se bloque AutoCAD.

Généralement, l'appel d'une commande AutoCAD est une mauvaise idée. .NET n'est pas AutoLISP.

Vous pouvez implémenter une interface similaire à la commande QSELECT et l'utiliser dans votre boîte de dialogue.

+0

Même si vous avez trouvé un moyen de le faire, je serais surpris si elle était robuste. D'après mon expérience, ce genre de chose mène à toutes sortes d'accidents mystérieux et à d'étranges erreurs inexpliquées. –

0

Ajoutez un espace après le _QSELECT. Quelque chose comme:

Document autocadDocument = autocadDocumentManager.MdiActiveDocument; 
autocadDocument.SendStringToExecute("_QSELECT ", false, false, true); 

Ou créez votre propre interface QSELECT. Cela pourrait être amusant aussi.