转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
Autodesk官方最新的.NET教程(六)(vb.net版)         ★★★★

Autodesk官方最新的.NET教程(六)(vb.net版)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2391 更新时间:2009/4/23 19:00:02
Public Overrides Sub OnDrop(ByVal e As System.Windows.Forms.DragEventArgs)

End Sub

 

在这个函数中,我们最后会调用AsdkClass1的成员CreateDivision() 和CreateEmployee,传入ModelessForm类中的编辑框的值。要实现这个功能,我们需要一个方法来连接ModelessForm实例。最佳的方法是通过DragEventArgs。但首先我们要把鼠标事件连接到MyDropTarget类。

 

10)   加入下面的代码到鼠标左键(MouseButtons.Left)处理函数中:

 

Application.DoDragDrop(Me, Me, System.Windows.Forms.DragDropEffects.All, New MyDropTarget())

 

注意我们传入’me’两次。第一次是用于Control参数,第二次是用于传入用户自定义数据。因为我们传入的是ModelessForm 类的实例,所以我们可以在放下的时候使用它来获取编辑框的值。

 

11)   回到OnDrop处理函数,让我们使用参数来调用创建雇员的函数。首先,添加职位提示的代码。在AsdkClass1.Create()中已经有相关的代码了,位于‘Get Employees Coordinates…’.注释下面。添加此代码来提示输入职位。

 

12)   接下来,获取传入到DragEventArgs 参数的ModelessForm对象:

 

Dim ctrl As ModelessForm = e.Data.GetData(GetType(ModelessForm))

 

请注意一下怎样通过GetType关键字把参数强制转化为ModelessForm的实例。

13)   使用上面的实例来调用AsdkClass1成员:

 

AsdkClass1.CreateDivision(ctrl.tb_Division.Text, AsdkClass1.sDivisionManager)

AsdkClass1.CreateEmployee(ctrl.tb_Name.Text, ctrl.tb_Division.Text, ctrl.tb_Salary.Text, prPosRes.Value())

 

注意:AsdkClass1的方法要不通过AsdkClass1的实例来调用,那么方法必须被声明为’ Shared’。因为public static 方法只能调用其它的Shared方法,你需要修改几个AsdkClass1类中的方法为’ Shared’。请你进行相关的修改(应该至少有4项要修改)。

 

14)   最后,因为我们处理的事件位于AutoCAD命令之外,我们必须再次在会修改数据库的代码处锁住文档。请加入锁住文档的代码,加入的方法与前面的上下文菜单是一样的。

编译、装载并运行组件,使用PALETTE命令。你应该可以使用拖放操作来创建一个雇员了。

 

 

第三部分  从有模式窗体中选择实体

本章的以下部分将演示获取一个用户在屏幕上选择的雇员实例的详细信息,并把信息显示在一个有模式窗体的编辑框中。这部分的重点是创建一个有模式窗体,并在执行选择操作而窗体要失去焦点时隐藏它。为了获取雇员的详细信息,我们将使用第4章结束时给出的ListEmployee帮助函数。

首先,我们需要创建一个窗体类。这个类是一个真实的窗体而不是我们在ModelessForm中创建的用户控件。

 

15)   在工程中创建一个Windows窗体类。调用‘ModalForm’类。在窗体中加入以下所示的三个编辑框控件和标签控件以及两个按钮。

 

 

 

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

<首先是最上面的编辑框>

(Name)    = tb_Name

Text = <空白>

 

<第二个编辑框>

(Name) = tb_Division

Text = <空白>

 

<第三个编辑框>

(Name) = tb_Salary

Text = <空白>

 

<上部的按钮>

(Name)  = SelectEmployeeButton

Text = Select Employee

 

<下部的按钮>

(Name)  = Close

Text = Close

 

接下来创建按钮的事件处理函数。‘Close’按钮可以只简单地调用:

       Me.Close()

 

要显示对话框,让我们在类中创建一个把窗体实例化为有模式对话框的命令函数。下面的实现的代码:

 

      <CommandMethod("MODALFORM")> _

      Public Sub ShowModalForm()

Dim modalForm As ModalForm = New ModalForm()

Application.ShowModalDialog(modalForm)

End Sub

 

编译、装载并在AutoCAD中运行MODALFORM命令来看看对话框是否可以工作。试试在对话框的右下角调整对话框的大小,然后关闭它。注意,重新使用MODALFORM命令时,对话框会出现在你上次离开的地方!这是ShowModalDialog方法的一个特征。大小和位置值被AutoCAD保存了。

 

 ‘Select Employee’按钮首先将执行一个简单的实体选择。这我们可以通过使用Editor.GetEntity()方法来实现,选择单一的实体比使用选择集来得方便的多。下面是怎样使用这个方法的代码:

 

Dim prEnt As PromptEntityOptions = New PromptEntityOptions("Select an Employee")

Dim prEntRes As PromptEntityResult = ed.GetEntity(prEnt)

 

16)   把上面的代码加入到SelectEmployeeButton_Click处理函数中,还要加入必需的数据库、命令行、事务处理设置变量和一个try catch块。不要忘了在finally块中销毁它们。

使用PromptStatus.OK来测试GetEntity的返回值,如果返回不等于,就调用this.Show并退出处理函数。

一旦我们获得的返回值是OK,那么我们就可以使用PromptEntityResult.ObjectId()方法来获取所选实体的object Id。这个id可以和一个固定的字符串数组被传入到AsdkClass1.ListEmployee函数中来获取雇员的详细信息。可以通过以下的代码说明:

 

            Dim saEmployeeList(-1) As String ''''This is right...it is redimed in the ListEmployee function.

 

            AsdkClass1

上一页  [1] [2] [3] [4]  下一页


[C语言系列]NET 中C#的switch语句的语法  [系统软件]托拽Explore中的文件到VB.net的窗口
[系统软件]Boost库在XP+Visual C++.net中的安装  [常用软件]新配色面板:Paint.Net3.0RC1官方下载
[常用软件]用内建的“Net Meeting”聊天  [VB.NET程序]Henry的VB.NET之旅(三)—共享成员
[VB.NET程序]Henry的VB.NET之旅(二)—构造与析构  [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体
[VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET)  [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台