当前位置: 北大青鸟学士后主页 > 在线教程 > .net > -> 文章内容

在AutoCAD选项对话框中加入页面

发布: 2011-02-21 14:36 | 来源: 未知 | 编辑:北大青鸟学士后 | 查看: 次 |

  本章的最后部分将向你介绍如何定义一个用户控件,这个控件可以被作为一个页面显示在AutoCAD的选项对话框中。我们可以使用这个页面来设置程序运行期间的缺省值。在Employee例子中,我们只是在AsdkClass1类中简单地设置了sDivisionDefault 和sDivisionManager字符串。

  19) 在工程中加入另外一个名为‘EmployeeOptions’的用户控件。在控件中加入两个编辑框和标签控件,如下图所示:

  使用属性窗口来设置编辑框的属性,设置如下:

  <上面的编辑框>

  (Name) = tb_EmployeeDivision

  Text = <空白>

  <下面的编辑框>

  (Name) = tb_DivisionManager

  Text = <空白>

  使用.NET API来显示自定义多页对话框,需要两个步骤。首先,通过传入要调用的成员函数的地址,来知道什么时候选项对话框出现。其次是实现回调函数。传入到回调函数中的第二个参数是一个‘TabbedDialogEventArgs’对象,我们必须使用它来调用‘AddTab’函数。AddTab使用一个标题字符串和一个‘TabbedDialogExtension’对象的实例,此实例封装了我们的窗体(其实是用户控件)。在TabbedDialogExtension的构造函数中,我们输入窗体的实例和回调函数(OnOK, OnCancel 或OnHelp)的地址。

  20) 在EmployeeOptions类中,加入一个名为AddTabDialog的public static函数,它会添加一个可供系统调用的事件处理:

  public static void AddTabDialog()

  {Autodesk.AutoCAD.ApplicationServices.Application.DisplayingOptionDialog += new TabbedDialogEventHandler(TabHandler);

  }

  在AsdkClass1的Initialize函数中加入调用此函数的代码。因为这个函数是在程序启动的时候调用的(因为类已经实现了IExtensionApplication接口),所以多页对话框就被自动的加载。

  20a) 实现一个相同的函数来移除事件处理,使用C#的-=关键字。

  在这里,你可以看到我们为AutoCAD中的Application 对象的DisplayingOptionDialog事件加入了一个处理函数,此函数会调用‘TabHandler’函数。所以接下来我们要实现这个函数。

  21) 加入下面的代码来实现处理函数:

  private static void TabHandler(object sender, Autodesk.AutoCAD.ApplicationServices.TabbedDialogEventArgs e)

  {

  EmployeeOptions EmployeeOptionsPage = new EmployeeOptions();

  e.AddTab("Acme Employee Options",

  new TabbedDialogExtension(

  EmployeeOptionsPage,

  new TabbedDialogAction(EmployeeOptionsPage.OnOk)));

  }

  我们首先实例化了一个EmployeeOptions对象。然后调用e.AddTab(),在这个函数中传入了一个TabbedDialogExtension的实例。TabbedDialogExtension的构造函数使用了EmployeeOptionsPage实例和一个TabbedDialogAction对象。TabbedDialogAction对象的参数可以是Ok, Cancel 或Help回调函数。在这个函数中,我们使用的是OK。

  22) 现在剩下的就是确定回调函数的内容,也就是ONOK的内容。前面已经说过了,我们只要设置AsdkClass1的static成员,也就是设置tb_DivisionManager 和tb_EmployeeDivision编辑框中的值。下面是代码:

  public void OnOk()

  {

  AsdkClass1.sDivisionDefault = tb_EmployeeDivision.Text;

  AsdkClass1.sDivisionManager = tb_DivisionManager.Text;

  }

  编译、装载并选择AutoCAD的选项菜单项来看一下我们的自定义对话框。试试设置对话框中的值并实例化一个雇员。你可以使用PRINTOUTEMPLOYEE命令来查看详细信息。

温馨提示:如果您对北大青鸟的学费、专业设置、就业推荐有任何疑问,可以咨询"400-9679-776"与老师沟通!
相关阅读:
  北大青鸟开班信息

9月05日 S1脱产 热招
9月10日 S1脱产 热招
9月12日 S1脱产 热招
9月17日 S1脱产 热招
9月22日 S1业余 热招
订座,报名

  北大青鸟在线报名
   姓 名:  *
 联系电话:  *
 qq:  *
 验证码:
E-mail:
 
  北大青鸟免费讲座
讲座日期: 本周六 点击抢座
讲座时间: 下午1点30分
讲座地点: 北大青鸟华腾校区
主讲老师: 王老师 金牌讲师
讲座主题: 网络安全
讲座内容: 检测、防御、黑客信息,如何过滤不安全的网站,如何防御黑客的进攻。
订座电话: 010-82462067/2167