乐筑天下

帖子
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 112|回复: 9

[求助]《深居浅出AutoCAD二次开发(李冠亿)》中的添加Ribbon菜单例程编译错误

[复制链接]

3

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
18
发表于 2011-1-13 21:17:00 | 显示全部楼层 |阅读模式
我用的是2009,编译该书中的示例代码时出现以下错误
  1    “Autodesk.Windows.RibbonItemEnumerator”不包含“Add”的定义,并且找不到可接受类型为“Autodesk.Windows.RibbonItemEnumerator”的第一个参数的扩展方法“Add”(是否缺少 using 指令或程序集引用?)    E:\AutoCAD\Arx\参考\SJQCSample\用户交互\用户界面\菜单\Ribbon.cs    25    29    Sample
......
AcDbMgd, AcMgd, AdWindows, PresentationCore, PresentationFramework , WindowsBase这些引用我都添加了
请高手帮忙。
  1. /////////////////////////////////////////////////////////////////////////////////////////////////
  2. //http://www.bimcad.org 数字建筑
  3. //深居浅出AutoCAD二次开发(李冠亿)
  4. /////////////////////////////////////////////////////////////////////////////////////////////////
  5. using System;
  6. using Autodesk.Windows;
  7. using Autodesk.AutoCAD.Runtime;
  8. [assembly: CommandClass(typeof(Sample.Ribbon))]
  9. namespace Sample
  10. {
  11.     class Ribbon
  12.     {
  13.         [CommandMethod("AddRibbon")]
  14.         public void AddRibbon()
  15.         {
  16.             RibbonControl rc = RibbonControl();
  17.             RibbonTab rt = RibbonTab("菜单标签", "1");
  18.             RibbonPanel rp = RibbonPanel("菜单面板");
  19.             RibbonButton rb = RibbonButton("菜单按钮", "菜单命令");
  20.             rp.Source.Items.Add(rb);
  21.             rt.Panels.Add(rp);
  22.             rc.Tabs.Add(rt);
  23.         }
  24.         ///
  25.         /// 获得菜单控制
  26.         ///
  27.         ///
  28.         public static RibbonControl RibbonControl()
  29.         {
  30.             if (Autodesk.Windows.ComponentManager.Ribbon == null)
  31.                 Autodesk.Windows.ComponentManager.ItemInitialized += new EventHandler(ComponentManager_ItemInitialized);
  32.             return ComponentManager.Ribbon; //Autodesk.AutoCAD.Ribbon.RibbonServices.RibbonPaletteSet.RibbonControl; //
  33.         }
  34.         ///
  35.         /// 创建菜单标签
  36.         ///
  37.         /// 标签名
  38.         /// 标签ID
  39.         ///
  40.         public static RibbonTab RibbonTab(string Name, string id)
  41.         {
  42.             RibbonTab ribTab = new Autodesk.Windows.RibbonTab();
  43.             ribTab.Title = Name;
  44.             ribTab.Id = id;
  45.             ribTab.IsActive = true;
  46.             return ribTab;
  47.         }
  48.         ///
  49.         /// 创建菜单面板
  50.         ///
  51.         /// 面板名
  52.         ///
  53.         public static RibbonPanel RibbonPanel(string Title)
  54.         {
  55.             RibbonPanelSource ribSourcePanel = new RibbonPanelSource(); // Autodesk.Windows
  56.             ribSourcePanel.Title = Title;//now the panel
  57.             RibbonPanel ribPanel = new RibbonPanel();
  58.             ribPanel.Source = ribSourcePanel;
  59.             return ribPanel;
  60.         }
  61.         ///
  62.         /// 创建菜单按钮
  63.         ///
  64.         /// 按钮名
  65.         /// 命令名
  66.         ///
  67.         public static RibbonButton RibbonButton(string btName, string cmdName)
  68.         {
  69.             RibbonButton ribButton = new RibbonButton();
  70.             ribButton.Text = btName;
  71.             ribButton.CommandParameter = cmdName;
  72.             ribButton.ShowText = true;
  73.             ribButton.CommandHandler = new AdskCommandHandler();
  74.             return ribButton;
  75.         }
  76.         ///
  77.         /// 用于激活菜单
  78.         ///
  79.         ///
  80.         ///
  81.         static void ComponentManager_ItemInitialized(object sender, RibbonItemEventArgs e)
  82.         {
  83.             if (Autodesk.Windows.ComponentManager.Ribbon != null)
  84.                 Autodesk.Windows.ComponentManager.ItemInitialized -= new EventHandler(ComponentManager_ItemInitialized);
  85.         }
  86.         ///
  87.         /// 执行按钮的命令
  88.         ///
  89.         public class AdskCommandHandler : System.Windows.Input.ICommand
  90.         {
  91.             ///
  92.             /// 是否可执行(接口)
  93.             ///
  94.             /// 命令名
  95.             ///
  96.             public bool CanExecute(object parameter)
  97.             {
  98.                 return true;
  99.             }
  100.             ///
  101.             /// 改变可执行状态
  102.             ///
  103.             public event EventHandler CanExecuteChanged;
  104.             ///
  105.             /// 执行命令
  106.             ///
  107.             /// 命令的名字
  108.             public void Execute(object parameter)
  109.             {
  110.                 //is from a Ribbon Button?
  111.                 RibbonButton ribBtn = parameter as RibbonButton;
  112.                 if (ribBtn != null)
  113.                     Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.SendStringToExecute((String)ribBtn.CommandParameter, true, false, true);
  114.                 //is from s Ribbon Textbox?
  115.                 RibbonTextBox ribTxt = parameter as RibbonTextBox;
  116.                 if (ribTxt != null)
  117.                     System.Windows.Forms.MessageBox.Show(ribTxt.TextValue);
  118.             }
  119.         }
  120.     }
  121. }
回复

使用道具 举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2011-1-13 21:33:00 | 显示全部楼层
哪个手册的?
回复

举报

3

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
18
发表于 2011-1-13 21:47:00 | 显示全部楼层
回复
刚才标题搞错了,应该是《深居浅出AutoCAD二次开发(李冠亿)》这个书中的。
回复

举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2011-1-14 12:28:00 | 显示全部楼层
Ribbon在官网教程应该可以找到一些例子吧
回复

举报

3

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
18
发表于 2011-1-14 18:42:00 | 显示全部楼层
回复
可以给一个Ribbon官网教程的下载地址吗?
回复

举报

72

主题

2726

帖子

9

银币

社区元老

Rank: 75Rank: 75Rank: 75

铜币
3014
发表于 2011-1-14 21:46:00 | 显示全部楼层
回复

举报

4

主题

26

帖子

6

银币

初来乍到

Rank: 1

铜币
42
发表于 2011-4-23 09:50:00 | 显示全部楼层
正想用编一个ribbon工具栏
回复

举报

19

主题

154

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
230
发表于 2011-4-24 19:59:00 | 显示全部楼层
呃,说老实话吧,感觉这本书写的真不咋地,不过有总比没有强~~
回复

举报

1

主题

3

帖子

1

银币

初来乍到

Rank: 1

铜币
7
发表于 2011-6-29 21:56:00 | 显示全部楼层
我的也是出现了异常:
警告        1        从不使用事件“Sample.Ribbon.AdskCommandHandler.CanExecuteChanged”        d:\my documents\visual studio 2010\Projects\sample5\sample5\Class1.cs        102        39        sample5
回复

举报

19

主题

154

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
230
发表于 2011-6-30 10:01:00 | 显示全部楼层
09的有这个方法吗?不知道他的类库是不是完整的
回复

举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁體中文

GMT+8, 2025-3-16 15:00 , Processed in 1.451553 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表