明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 12028|回复: 17

[求助] C#中如何创建一个自己的工具条

  [复制链接]
发表于 2010-6-13 16:29 | 显示全部楼层 |阅读模式

在网上查了一下,关于用C#创建工具条的例子都较少,看了有些帖子中有这样的语句:

AcadToolbar MyToolBar = Autodesk.AutoCAD.ApplicationServices.Application.MenuGroups.Item(0).Toolbars.Add("SLTireCAD工具栏");

 

但是为什么在引用的acdbmgd.dll和acmgd.dll中都没有查到AcadToolbar这个类,还有Autodesk.AutoCAD.ApplicationServices.Application.MenuGroups.也是Object类型的,后面的.Item(0).Toolbars.Add("SLTireCAD工具栏")根本就调用不了。

 

新手上路,请各位专家指导一下,最好能有个简单的创建工具条的例子,谢谢

发表于 2010-6-22 13:14 | 显示全部楼层
C#动态创建工具栏 需引入com类库
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.Windows.Forms;
  5. using cadApp = Autodesk.AutoCAD.ApplicationServices;
  6. using Autodesk.AutoCAD.DatabaseServices;
  7. using Autodesk.AutoCAD.Runtime;
  8. using Autodesk.AutoCAD.Geometry;
  9. using Autodesk.AutoCAD.EditorInput;
  10. using Autodesk.AutoCAD.Interop; //引用com类库
  11. [assembly: ExtensionApplication(typeof(yfCAD.myClass))] //启动时加载工具栏,注意typeof括号里的类库名
  12. namespace yfCAD
  13. {
  14.     public class myClass : Autodesk.AutoCAD.Runtime.IExtensionApplication //注意:重要
  15.     {
  16.         public void Initialize()
  17.         {
  18.             AddToolBar();//启时自动加载工具栏
  19.         }
  20.         // 清除操作,不可缺少
  21.         public void Terminate()
  22.         {
  23.         }
  24.         //加载工具栏
  25.         public void AddToolBar()
  26.         {
  27.             string path = Path();
  28.             Autodesk.AutoCAD.Interop.AcadApplication acadApp = (AcadApplication) Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
  29.             Autodesk.AutoCAD.Interop.AcadToolbar atb = null;
  30.             Autodesk.AutoCAD.Interop.AcadToolbarItem atbi = null;
  31.             try
  32.             {
  33.                 atb = acadApp.MenuGroups.Item("ACAD").Toolbars.Add("您自己工具栏的名称");
  34.                 //示例atbi = atb.AddToolbarButton(0, "工具栏名称", "帮助", "命令 ", false);
  35.                 //命令后,紧跟一空格,否则处于等待状态
  36.                 atbi = atb.AddToolbarButton(0, "数字文本求和", "数字文本求和", "Sum ", false);
  37.                 //示例atbi.SetBitmaps(工具栏图片文件路径,工具栏图片文件路径);
  38.                 atbi.SetBitmaps(acadApp.Path.Trim() + "\\***.bmp", acadApp.Path.Trim() + "\\***.bmp");
  39.                 atbi = atb.AddToolbarButton(1, "批量转换", "批量转换", "dwgToPdf ", false);
  40.                 atbi.SetBitmaps(acadApp.Path.Trim() + "\\***.bmp", acadApp.Path.Trim() + "\\***.bmp");
  41.                
  42.                 //工具栏靠右边停靠
  43.                 atb.Dock(Autodesk.AutoCAD.Interop.Common.AcToolbarDockStatus.acToolbarDockRight);
  44.                 atb.Visible = true;
  45.             }
  46.             catch
  47.             {
  48.                 Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
  49.                 ed.WriteMessage("加载工具栏出错……");
  50.             }
  51.         }

评分

参与人数 3明经币 +2 金钱 +5 收起 理由
diy2005 + 5 很给力!
tumu8420 + 1 赞一个!
雪山飞狐_lzh + 1 【好评】表扬一下

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2018-9-28 22:22 | 显示全部楼层
感谢分享,分享伟大
发表于 2010-6-13 16:38 | 显示全部楼层
AcadToolbar是要引用Com库的
 楼主| 发表于 2010-6-13 17:27 | 显示全部楼层

[求助] C#中如何创建一个自己的工具条

如何引,能否指导一下,这个com在2008安装盘中有没?谢谢
发表于 2010-10-4 10:49 | 显示全部楼层
感谢此帖 内容
发表于 2011-10-21 09:48 | 显示全部楼层

感谢此帖 内容
发表于 2012-6-26 21:16 | 显示全部楼层
代码可以直接融合在一起么?学习了
发表于 2013-1-3 17:41 | 显示全部楼层
学习了 谢谢
发表于 2013-1-4 11:35 | 显示全部楼层
要引用com组件的
发表于 2013-7-23 22:40 | 显示全部楼层
能不能不受版本限制啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-29 02:35 , Processed in 0.207660 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表