PhilBat Posté(e) le 7 novembre 2012 Partager Posté(e) le 7 novembre 2012 bonjour à tousComment remplir un combobox en utilisant la panoplie de couleursd'AutoCAD afin de pouvoir modifier facilement la couleur d'un texte (par exemple).En VB net bien sûr.Merci d'avancePhil Lien vers le commentaire Partager sur d’autres sites More sharing options...
Maxence DELANNOY Posté(e) le 7 novembre 2012 Partager Posté(e) le 7 novembre 2012 Tu peux utiliser la classe Autodesk.AutoCAD.Windows.ColorDialog pour afficher une boite de dialogue standard de sélection des couleurs. Désolé, mais le code est en C#. ColorDialog cd = new ColorDialog(); cd.SetDialogTabs(ColorDialog.ColorTabs.ACITab | ColorDialog.ColorTabs.TrueColorTab | ColorDialog.ColorTabs.ColorBookTab); cd.IncludeByBlockByLayer = true; cd.Color = null; cd.ShowDialog(); Si tu utilise un comboBox, l'utilisateur ne pourra pas sélectionner une couleur vraie (+ de 16 millions de possibilités). Cependant, tu peux le faire si tu te contentes des couleurs indexées. Pour obtenir la liste des couleurs, tu boucles de 1 (rouge) à 255 (blanc) et tu crées un objet couleur avec la méthode FromColorIndex : for (short colorIndex = 1; colorIndex <= 255; colorIndex++) { using (Color color = Color.FromColorIndex(ColorMethod.ByAci, colorIndex)) { // color.ColorValue correspond à une couleur .NET } } Ensuite, tu peux utiliser le mode OwnerDraw du combo pour afficher un rectangle rempli avec la couleur. Tu as aussi un article sur the Swamp : http://www.theswamp.org/index.php?topic=30270.0 et sur Through the Interface : http://through-the-interface.typepad.com/through_the_interface/2008/03/implementing-yo.html Maxence DELANNOYDéveloppement de compléments aux logiciels Autodesk : AutoCAD, Revit, Inventor, Vault, Navisworks... et autres logiciels de CAOWIIP - http://wiip.fr Lien vers le commentaire Partager sur d’autres sites More sharing options...
PhilBat Posté(e) le 4 octobre Auteur Partager Posté(e) le 4 octobre Bonjour, je désire remplir un contrôle dataGridView avec les noms des calques et les couleurs des calques du Dwg courant. Grâce à un bouton je change la couleur de la ligne (cellule) sélectionnée via une boite de dialogue standard de sélection des couleurs (voir si-dessus). Maintenant la difficulté est de changer toutes les couleurs de chaque calque suivant ce code : private void btnOK_Click(object sender, EventArgs e) { var doc = AcAp.DocumentManager.MdiActiveDocument; var db = doc.Database; var ed = doc.Editor; using (Transaction tr = db.TransactionManager.StartTransaction()) { LayerTable acLyrTbl = tr.GetObject(db.LayerTableId, OpenMode.ForRead) as LayerTable; foreach (ObjectId acObjId in acLyrTbl) { LayerTableRecord acLyrTblRec = tr.GetObject(acObjId, OpenMode.ForRead) as LayerTableRecord; if (!acLyrTblRec.IsDependent) { foreach (DataGridViewRow row in dataGridView1.Rows) { if (!row.IsNewRow) { if (row.Cells[0].Value.ToString() == acLyrTblRec.Name) { Autodesk.AutoCAD.Colors.Color c = Autodesk.AutoCAD.Colors.Color.FromNames(row.Cells[2].Value.ToString()); acLyrTblRec.UpgradeOpen(); acLyrTblRec.Color = c; } } } } } tr.Commit(); } this.Close(); } Évidemment la ligne ...Color.FromNames ne marche pas. Avez-vous une solution pour palier à tous les cas de couleurs ?... Merci d'avance Philippe Lien vers le commentaire Partager sur d’autres sites More sharing options...
Olivier Eckmann Posté(e) le 4 octobre Partager Posté(e) le 4 octobre Quand tu choisis ta couleur via le dialogue, pourquoi tu ne stockes pas cette couleur (AutoCAD) dans le tag de ta cellule. row.Cells[0].Tag = "variable couleur renvoyée par le dialogue de choix" Comme ça tu la récupères directement sans passer par une conversion. Autodesk.AutoCAD.Colors.Color c = (Autodesk.AutoCAD.Colors.Color)(row.Cells[0].Tag); Olivier Lien vers le commentaire Partager sur d’autres sites More sharing options...
PhilBat Posté(e) il y a 11 heures Auteur Partager Posté(e) il y a 11 heures Ok merci pour la réponse, mais l'usage du Tag (au lieu de value ??) et du type string pose problème pour palier à tous les cas de figures de codage des couleurs. Salutations Philippe Lien vers le commentaire Partager sur d’autres sites More sharing options...
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