wzh3128520 发表于 2010-6-13 16:29:00

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

<p>在网上查了一下,关于用C#创建工具条的例子都较少,看了有些帖子中有这样的语句:</p>
<p><font face="Verdana">AcadToolbar MyToolBar = Autodesk.AutoCAD.ApplicationServices.Application.MenuGroups.Item(0).Toolbars.Add("SLTireCAD工具栏");</font></p>
<p>&nbsp;</p>
<p>但是为什么在引用的acdbmgd.dll和acmgd.dll中都没有查到<font face="Verdana">AcadToolbar这个类,还有Autodesk.AutoCAD.ApplicationServices.Application.MenuGroups.也是Object类型的,后面的.Item(0).Toolbars.Add("SLTireCAD工具栏")根本就调用不了。</font></p>
<p>&nbsp;</p>
<p>新手上路,请各位专家指导一下,最好能有个简单的创建工具条的例子,谢谢</p>

518yf 发表于 2010-6-22 13:14:00

C#动态创建工具栏 需引入com类库

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using cadApp = Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Interop; //引用com类库
//启动时加载工具栏,注意typeof括号里的类库名

namespace yfCAD
{
    public class myClass : Autodesk.AutoCAD.Runtime.IExtensionApplication //注意:重要
    {
      public void Initialize()
      {
            AddToolBar();//启时自动加载工具栏
      }
      // 清除操作,不可缺少
      public void Terminate()
      {
      }
      //加载工具栏
      public void AddToolBar()
      {
            string path = Path();
            Autodesk.AutoCAD.Interop.AcadApplication acadApp = (AcadApplication) Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
            Autodesk.AutoCAD.Interop.AcadToolbar atb = null;
            Autodesk.AutoCAD.Interop.AcadToolbarItem atbi = null;
            try
            {
                atb = acadApp.MenuGroups.Item("ACAD").Toolbars.Add("您自己工具栏的名称");
                //示例atbi = atb.AddToolbarButton(0, "工具栏名称", "帮助", "命令 ", false);
                //命令后,紧跟一空格,否则处于等待状态
                atbi = atb.AddToolbarButton(0, "数字文本求和", "数字文本求和", "Sum ", false);
                //示例atbi.SetBitmaps(工具栏图片文件路径,工具栏图片文件路径);
                atbi.SetBitmaps(acadApp.Path.Trim() + "\\***.bmp", acadApp.Path.Trim() + "\\***.bmp");
                atbi = atb.AddToolbarButton(1, "批量转换", "批量转换", "dwgToPdf ", false);
                atbi.SetBitmaps(acadApp.Path.Trim() + "\\***.bmp", acadApp.Path.Trim() + "\\***.bmp");
               
                //工具栏靠右边停靠
                atb.Dock(Autodesk.AutoCAD.Interop.Common.AcToolbarDockStatus.acToolbarDockRight);
                atb.Visible = true;
            }
            catch
            {
                Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;
                ed.WriteMessage("加载工具栏出错……");
            }
      }

evergreenxq 发表于 2018-9-28 22:22:44

感谢分享,分享伟大

雪山飞狐_lzh 发表于 2010-6-13 16:38:00

<font face="Verdana">AcadToolbar</font>是要引用Com库的

wzh3128520 发表于 2010-6-13 17:27:00

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

如何引,能否指导一下,这个com在2008安装盘中有没?谢谢

feitian 发表于 2010-10-4 10:49:00

感谢此帖 内容

yanglin112 发表于 2011-10-21 09:48:06


感谢此帖 内容

ctgu123 发表于 2012-6-26 21:16:10

代码可以直接融合在一起么?学习了

aming001 发表于 2013-1-3 17:41:27

学习了 谢谢

yisimayiayisha 发表于 2013-1-4 11:35:38

要引用com组件的

diy2005 发表于 2013-7-23 22:40:37

能不能不受版本限制啊
页: [1] 2
查看完整版本: [求助] C#中如何创建一个自己的工具条