sbosarl Posté(e) le 21 août 2016 Posté(e) le 21 août 2016 Bonjour, J'ai démarrer un autoformation en c#, j'avance c'est déjà pas mal .maisJe bloque sur un point particulier. L'appel d une commande depuis un bouton formJ'ais créer 3 types de commandes sur mon fichier "command.cs" namespace chanzhachure2 Entête commande:[CommandMethod("Chzbloc")] public static void Chzbloc() qui font appelle à une fonction qui lit un fichier xml ( fichier xml gérer par une form1.cs )Entête fonction: public static List<string> Chzliste()Et créer une commande "boite dialogue gestion du xml public void Chzoption() { Form1 tvf2 = new Form1(); Autodesk.AutoCAD.ApplicationServices.Application.ShowModelessDialog(null, tvf2, false); }Jusqu' a la tout fonction bien mais quand je place des boutons de lancement des commandes autocad plante Form1: namespace chanzhachure2 { public partial class Form3 : Form {............ private void button7_Click(object sender, EventArgs e) { this.Close(); // Chzbloc() //résultat: inconnu chanzhachure2.commande.Chzbloc();//résultat démarrage fonction et planter } ......
(gile) Posté(e) le 21 août 2016 Posté(e) le 21 août 2016 Salut, J'ai un peu du mal à comprendre tes explications (et les fautes d'orthographe n'aident pas...). Dans tous les cas, une boite de dialogue non modale (modeless)* s'exécute dans le contexte de l'application et si tes commandes doivent s'exécuter dans le contexte du document (ce qui est probable), ça génèrera une erreur. Puisque tu dis que tout fonctionne, j'imagine que tes commandes fonctionnent bien sans la boite de dialogue, quand on les appelle directement depuis la ligne de commande. Si c'est bien le cas, le moyen le plus sûr et le plus simple est de laisser à AutoCAD le soin de basculer dans le contexte du document et de verrouiller celui-ci en appelant les commandes avec SendStringToExecute() depuis les gestionnaires d'évènement des boutons de la boite de dialogue. private void button7_Click(object sender, EventArgs e) { var doc = Application.DocumentManager.MdiActiveDocument; doc.SendStringToExecute("Chzbloc ", false, false, true); } * si l'utilisation d'une interface non modale est nécessaire, une palette peut être plus conviviale, sinon, l'utilisation d'une boite de dialogue modale, plus facile à gérer, s'impose. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
sbosarl Posté(e) le 22 août 2016 Auteur Posté(e) le 22 août 2016 bonjour,(désolé pour les fautes)je vais tester cela ,mercimais peu tu me donner un peu plus d'explication sur * si l'utilisation d'une interface non modale est nécessaire, une palette peut être plus conviviale, sinon, l'utilisation d'une boite de dialogue modale, plus facile à gérer, s'impose. je n'est pas trouvée d'aide et d'exemple pour les boite de dialogue ou palette(pardon si 4 exemples dont un de toi sur site anglais)ou éventuellement comment chercher
(gile) Posté(e) le 22 août 2016 Posté(e) le 22 août 2016 Salut, Tout d'abord un petit rappel d'ordre général sur les différences entre l'affichage modal et non modal des interfaces utilisateur dans cet article. Ensuite, je disais ça parce que dans AutoCAD, l'affichage non modal se fait sous forme de palette qui sont des boites de dialogue non modales, ancrables et repliables. Pour ce qui est des exemples, je vais essayer, quand j'aurais le temps de faire un petit exemple simple avec les différentes formes. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
sbosarl Posté(e) le 22 août 2016 Auteur Posté(e) le 22 août 2016 salut,pour les exemples ne perds pas ton temps que pour moi modale et non modale : en première lecture ce n'est pas clair dans mon espritdonc je vais approfondir sa un peu plus dans le détailmerci
sbosarl Posté(e) le 24 août 2016 Auteur Posté(e) le 24 août 2016 salut,je revient pour valider la réponse de (gile) sujet clôt pour ma part et merci pour tes x interventions (cadxp et autres)
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