摘要:本文简单介绍了MicrosoftVisualBasic6.0中的标准控件和等效的Microsoft.NET控件。目标了解哪些VisualBasic6.0ActiveX控件在.NET中具有等效控件。了解.NET控件中哪些属性发生了变化。了解.NET中有哪些新控件。前提条件要彻底理解本文内容,需要满足以下条件:了解什么是ActiveX控件。使用VisualBasic6.0控件和ActiveX控件编写过Windows应用程序。标准控件的差别从内部构造来看,Microsoft.NET控件与Microsoft®ActiveX®控件存在很大差别,因为.NET控件是从其他类的层次结构创建的。这些.NET控件所继承的类有若干个,随着您对实际控件的深入了解,您会发现每一个类都经过优化并添加了更多的功能。控件的类层次结构的顶层是Control类。但如果您创建自己的控件,这些控件很可能是从UserControl类继承而来的,因为UserControl类包含您需要的属性和事件,而且还能为您绘制所有的构成控件。使用.NET创建用户界面时,您会发现很多熟悉的MicrosoftVisualBasic®6.0控件已经不见了或者已经换了名称。本文将简单介绍VisualBasic6.0中的标准控件以及等效的.NET控件。在本文后面的内容中,您将了解到所有这些控件在属性名称上有何具体的差异。除了属性和一些事件名称发生变化以外,这些控件的功能与VisualBasic6.0中基本相同。表1列出了VisualBasic6.0工具箱中的标准控件以及等效的.NET控件。虽然这里只列出了部分.NET控件,但通过此表您可以了解到.NET控件发生了什么样的变化。表1:在.NET中被重命名的ActiveX控件VisualBasic6.0标准控件等效的.NET控件PicturePictureBoxLabelLabelTextBoxTextBoxFrameGroupBoxCommandButtonButtonCheckBoxCheckBoxOptionButtonRadioButtonListBoxListBoxComboBoxComboBoxHScrollBarHScrollBarVscrollBarVScrollBarTimerTimerDriveListBox无。由OpenFileDialog控件代替。DirListBox无。由OpenFileDialog控件代替。FileListBox无。由OpenFileDialog控件代替。Shape无。目前,您可以使用.NET公共语言运行时(CLR)中的类来绘制形状。Line无。目前您可以使用.NETCLR中的类来绘制直线。Image无。您可以使用PictureBox控件显示单个图像。Data无。.NET中的数据绑定与VisualBasic6.0中的数据绑定完全不同。OLE无。ImageListImageList.NET中的新控件除了标准控件以外,.NET中还包含一组新控件。其中一些控件在VisualBasic6.0中具有等效控件,而另一些则是全新的控件。下面列出了一些您可以在.NET中使用的新控件。表2:可用于创建用户界面的标准控件新控件说明LinkLabel使您可以在Windows窗体上放置超链接。其功能类似于浏览器中的超链接。MainMenu帮助您在窗体上创建菜单。DataGrid按表格形式显示ADO.NET数据集中的数据。此控件与VisualBasic6.0中的FlexGrid控件非常相似,但它具有许多新功能。CheckedListBox增强的ListBox,允许用户通过选取每个项目旁边的复选框,来选择列表中的一个或多个项目。要在VisualBasic6.0中实现此功能,您需要将Style属性设置为1-Checked。TabControl结合了VisualBasic6.0中TabStrip和SSTab两个控件的功能。Splitter使您可以创建类似于浏览器的、具有两个窗格的界面。DomainUpDown将文本框和UpDown箭头组合在一起。其功能类似于组合框,您可以将任何类型的数据放入列表,用户可以通过单击上箭头和下箭头来浏览数据。TrackBar与VisualBasic6.0中的旧Slider控件非常相似。HelpProvider如果将此控件添加到窗体的组件栏中,它将向窗体的每个控件添加HelpString、HelpTopic和ShowHelp属性。ToolTip如果将此控件添加到窗体的组件栏中,它将向窗体的每个控件添加ToolTip属性。NotifyIcon通常只在创建Windows服务时使用,使您可以设置显示在任务栏的系统托盘中的Icon。单击时,可以显示菜单或该程序中的任何窗体。ContextMenu向窗体添加另一个菜单,然后将其指派给窗体上的任何控件。OpenFileDialog显示OpenFile对话框。在VisualBasic6.0中,此控件是CommonDialog控件的方法。SaveFileDialog显示SaveFile对话框。在VisualBasic6.0中,此控件是CommonDialog控件的方法。FontDialog显示Font对话框。在VisualBasic6.0中,此控件是CommonDialog控件的方法。ColorDialog显示Color对话框。在VisualBasic6.0中,此控件是CommonDialog控件的方法。PrintDialog显示Print对话框。在VisualBasic6.0中,此控件是CommonDialog控件的方法。PrintPreviewDialog与PrintPreviewControl结合使用。PrintPreviewControl允许将文档发送到打印预览窗口而不是发送到打印机。ErrorProvider如果将此控件添加到窗体的组件栏中,它将向窗体的每个控件添加Error、IconAlignment和IconPadding属性。PrintDocument将该控件与其他类一起使用时,您可以将文档发送到打印机。PageSetupDialog显示一个对话框,用户可在上面更改页边距和页面方向等设置。属性的变化为了保持所有控件中属性名称的一致性并且使属性名称更加直观,很多属性的名称相对于它们在VisualBasic6.0中的名称已经有所变化。某些属性已被删除,因为不再需要这些属性(例如DDE属性),或者其功能已由.NET中的其他控件或方法所代替。已删除的公共属性在VisualBasic6.0中,有许多属性是所有控件所共有的。在.NET中,许多此类属性已被删除,因为它们已不再适用或者其功能已按照完全不同的方式进行处理。表3列出了在.NET中不再可用的VisualBasic6.0控件的公共属性。在本文后面的内容中,您会了解到它们的等效属性或删除它们的原因。表3:.NET中所没有的VisualBasic6.0属性已删除的属性DragIconDragModeIndexLinkItemLinkModeLinkTimeoutLinkTopicMouseIconMousePointerOLEDragModeOLEDropMode新的公共属性您经常会需要使用所有控件的公共属性集。与VisualBasic6.0一样,.NET中的所有控件也有一个公共的属性集。表4列出了各个新属性并介绍了其功能。表4:.NET中的新属性新属性说明AccessibleDescription“讲述人”附件所朗读的说明内容。“讲述人”是供有视觉障碍的用户使用的一种通讯工具,它可以通过计算机扬声器为用户朗读计算机屏幕上的文字。大部分Windows系统都具有此功能,使用方法是依次单击“开始”|“程序”|“附件”|“辅助工具”,然后单击“讲述人”。当您在屏幕上移动鼠标时,该工具将朗读屏幕上的文字。当填写此说明并运行“讲述人”工具时,它将为用户朗读此说明。AccessibleName“讲述人”附件所报告的控件名称。AccessibleRole“讲述人”附件为用户报告的角色。AllowDrop确定控件是否接收拖放通知。Anchor确定控件在窗体中的锚定位置。可以选择您需要的任何锚定样式。ContextMenu将此属性设置为ContextMenu控件的名称,这样在此控件上单击鼠标右键时,将自动显示控件菜单。Dock确定控件在窗体中的靠接位置。靠接控件时,控件将随窗体的大小而缩放,但靠接位置不变。Locked如果设置为True,则此控件在设计时将无法移动。Modifiers确定控件的范围。默认情况下,.NET中的所有控件都为Friend。在VisualBasic的旧版本中,所有控件都为Public。现在,您可以选择Private、Protected、Friend或Public。已改变的属性在VisualBasic6.0中,有四个属性是所有控件所必需的,即:Left、Top、Width和Height。虽然这些属性仍然可以使用,但最好使用称为Location和Size的新结构。表5列出了这些新属性,并介绍了这些新属性的结构。表5:.NET中的Location和Size属性属性说明Location指出控件所在位置的X和Y坐标的Point结构。在旧版本的VisualBasic中,需要使用Left和Top属性来完成此设置。Size指出控件的宽度和高度的Size结构。在旧版本的VisualBasic中,需要使用Width和Height属性来完成此设置。常规控件的变化与VisualBasic6.0相比,.NET中控件的工作方式发生了很大变化。以下九节介绍了其中一些变化,并介绍了这些变化对您在.NET中的开发工作的影响。.NET控件的创建与VisualBasic6.0相比,.NET最大的变化之一是窗体上的实例化控件的代码现在变为可见,以前所有这些代码都隐藏在ActiveX控件内部和VisualBasic运行时中。现在,展开窗体后面的代码中的#Region部分即可查看代码。下面是一个窗体示例,包含一个标签、一个文本框和一个按钮控件。PublicClassfrmTestInheritsSystem.Windows.Forms.Form#RegionWindowsForm.DesignergeneratedcodePublicSubNew()MyBase.New()´Windows窗体设计器必需此调用。InitializeComponent()´调用InitializeComponent()后添加初始化。EndSub´窗体覆盖配置以清除组件列表。ProtectedOverloadsOverridesSubDispose(ByValdisposingAsBoolean)IfdisposingThenIfNot(componentsIsNothing)Thencomponents.Dispose()EndIfEndIfMyBase.Dispose(disposing)EndSubFriendWithEventsLabel1AsSystem.Windows.Forms.LabelFriendWithEventsTextBox1AsSystem.Windows.Forms.TextBoxFriendWithEventsButton1AsSystem.Windows.Forms.Button´Windows窗体设计器所必需。PrivatecomponentsAsSystem.ComponentModel.Container´注意:以下步骤是Windows窗体设计器所必需的。´可以使用Windows窗体设计器对其进行修改。´请勿使用代码编辑器进行修改。system.diagnostics.debuggerStepThrough()PrivateSubInitializeComponent()Me.Label1=NewSystem.Windows.Forms.Label()Me.TextBox1=NewSystem.Windo