摘要:本文简单介绍了 Microsoft Visual Basic 6.0 中的标准控件和等效的 Microsoft .NET 控件。
目标 了解哪些 Visual Basic 6.0 ActiveX 控件在 .NET 中具有等效控件。 了解 .NET 控件中哪些属性发生了变化。 了解 .NET 中有哪些新控件。 前提条件要彻底理解本文内容,需要满足以下条件: 了解什么是 ActiveX 控件。 使用 Visual Basic 6.0 控件和 ActiveX 控件编写过 Windows 应用程序。 目录 标准控件的差别 .NET 中的新控件 属性的变化 常规控件的变化 标准控件的变化 总结 标准控件的差别
从内部构造来看,Microsoft .NET 控件与 Microsoft® ActiveX® 控件存在很大差别,因为 .NET 控件是从其他类的层次结构创建的。这些 .NET 控件所继承的类有若干个,随着您对实际控件的深入了解,您会发现每一个类都经过优化并添加了更多的功能。控件的类层次结构的顶层是 Control 类。但如果您创建自己的控件,这些控件很可能是从 UserControl 类继承而来的,因为 UserControl 类包含您需要的属性和事件,而且还能为您绘制所有的构成控件。
使用 .NET 创建用户界面时,您会发现很多熟悉的 Microsoft Visual Basic® 6.0 控件已经不见了或者已经换了名称。本文将简单介绍 Visual Basic 6.0 中的标准控件以及等效的 .NET 控件。在本文后面的内容中,您将了解到所有这些控件在属性名称上有何具体的差异。除了属性和一些事件名称发生变化以外,这些控件的功能与 Visual Basic 6.0 中基本相同。
表 1 列出了 Visual Basic 6.0 工具箱中的标准控件以及等效的 .NET 控件。虽然这里只列出了部分 .NET 控件,但通过此表您可以了解到 .NET 控件发生了什么样的变化。
表 1:在 .NET 中被重命名的 ActiveX 控件
Visual Basic 6.0 标准控件 等效的 .NET 控件 Picture PictureBox Label Label TextBox TextBox Frame GroupBox CommandButton Button CheckBox CheckBox OptionButton RadioButton ListBox ListBox ComboBox ComboBox HScrollBar HScrollBar VscrollBar VScrollBar Timer Timer DriveListBox 无。由 OpenFileDialog 控件代替。 DirListBox 无。由 OpenFileDialog 控件代替。 FileListBox 无。由 OpenFileDialog 控件代替。 Shape 无。目前,您可以使用 .NET 公共语言运行时 (CLR) 中的类来绘制形状。 Line 无。目前您可以使用 .NET CLR 中的类来绘制直线。 Image 无。您可以使用 PictureBox 控件显示单个图像。 Data 无。.NET 中的数据绑定与 Visual Basic 6.0 中的数据绑定完全不同。 OLE 无。 ImageList ImageList .NET 中的新控件除了标准控件以外,.NET 中还包含一组新控件。其中一些控件在 Visual Basic 6.0 中具有等效控件,而另一些则是全新的控件。下面列出了一些您可以在 .NET 中使用的新控件。
表 2:可用于创建用户界面的标准控件
新控件 说明 LinkLabel 使您可以在 Windows 窗体上放置超链接。其功能类似于浏览器中的超链接。 MainMenu 帮助您在窗体上创建菜单。 DataGrid 按表格形式显示 ADO.NET 数据集中的数据。此控件与 Visual Basic 6.0 中的 FlexGrid 控件非常相似,但它具有许多新功能。 CheckedListBox 增强的 ListBox,允许用户通过选取每个项目旁边的复选框,来选择列表中的一个或多个项目。要在 Visual Basic 6.0 中实现此功能,您需要将 Style 属性设置为 1-Checked。 TabControl 结合了 Visual Basic 6.0 中 TabStrip 和 SSTab 两个控件的功能。 Splitter 使您可以创建类似于浏览器的、具有两个窗格的界面。 DomainUpDown 将文本框和 UpDown 箭头组合在一起。其功能类似于组合框,您可以将任何类型的数据放入列表,用户可以通过单击上箭头和下箭头来浏览数据。 TrackBar 与 Visual Basic 6.0 中的旧 Slider 控件非常相似。 HelpProvider 如果将此控件添加到窗体的组件栏中,它将向窗体的每个控件添加 HelpString、HelpTopic 和 ShowHelp 属性。 ToolTip 如果将此控件添加到窗体的组件栏中,它将向窗体的每个控件添加 ToolTip 属性。 NotifyIcon 通常只在创建 Windows 服务时使用,使您可以设置显示在任务栏的系统托盘中的 Icon。单击时,可以显示菜单或该程序中的任何窗体。 ContextMenu 向窗体添加另一个菜单,然后将其指派给窗体上的任何控件。 OpenFileDialog 显示 OpenFile 对话框。在 Visual Basic 6.0 中,此控件是 CommonDialog 控件的方法。 SaveFileDialog 显示 SaveFile 对话框。在 Visual Basic 6.0 中,此控件是 CommonDialog 控件的方法。 FontDialog 显示 Font 对话框。在 Visual Basic 6.0 中,此控件是 CommonDialog 控件的方法。 ColorDialog 显示 Color 对话框。在 Visual Basic 6.0 中,此控件是 CommonDialog 控件的方法。 PrintDialog 显示 Print 对话框。在 Visual Basic 6.0 中,此控件是 CommonDialog 控件的方法。 PrintPreviewDialog 与 PrintPreviewControl 结合使用。 PrintPreviewControl 允许将文档发送到打印预览窗口而不是发送到打印机。 ErrorProvider 如果将此控件添加到窗体的组件栏中,它将向窗体的每个控件添加 Error、IconAlignment 和 IconPadding 属性。 PrintDocument 将该控件与其他类一起使用时,您可以将文档发送到打印机。 PageSetupDialog 显示一个对话框,用户可在上面更改页边距和页面方向等设置。 属性的变化为了保持所有控件中属性名称的一致性并且使属性名称更加直观,很多属性的名称相对于它们在 Visual Basic 6.0 中的名称已经有所变化。某些属性已被删除,因为不再需要这些属性(例如 DDE 属性),或者其功能已由 .NET 中的其他控件或方法所代替。
已删除的公共属性在 Visual Basic 6.0 中,有许多属性是所有控件所共有的。在 .NET 中,许多此类属性已被删除,因为它们已不再适用或者其功能已按照完全不同的方式进行处理。表 3 列出了在 .NET 中不再可用的 Visual Basic 6.0 控件的公共属性。在本文后面的内容中,您会了解到它们的等效属性或删除它们的原因。
表 3:.NET 中所没有的 Visual Basic 6.0 属性
已删除的属性 DragIcon DragMode Index LinkItem LinkMode LinkTimeout LinkTopic MouseIcon MousePointer OLEDragMode OLEDropMode 新的公共属性您经常会需要使用所有控件的公共属性集。与 Visual Basic 6.0 一样,.NET 中的所有控件也有一个公共的属性集。表 4 列出了各个新属性并介绍了其功能。
表 4:.NET 中的新属性
新属性 说明 AccessibleDescription “讲述人”附件所朗读的说明内容。“讲述人”是供有视觉障碍的用户使用的一种通讯工具,它可以通过计算机扬声器为用户朗读计算机屏幕上的文字。大部分 Windows 系统都具有此功能,使用方法是依次单击“开始”|“程序”|“附件”|“辅助工具”,然后单击“讲述人”。当您在屏幕上移动鼠标时,该工具将朗读屏幕上的文字。当填写此说明并运行“讲述人”工具时,它将为用户朗读此说明。 AccessibleName “讲述人”附件所报告的控件名称。 AccessibleRole “讲述人”附件为用户报告的角色。 AllowDrop 确定控件是否接收拖放通知。 Anchor 确定控件在窗体中的锚定位置。可以选择您需要的任何锚定样式。 ContextMenu 将此属性设置为 ContextMenu 控件的名称,这样在此控件上单击鼠标右键时,将自动显示控件菜单。 Dock 确定控件在窗体中的靠接位置。靠接控件时,控件将随窗体的大小而缩放,但靠接位置不变。 Locked 如果设置为 True,则此控件在设计时将无法移动。 Modifiers 确定控件的范围。默认情况下,.NET 中的所有控件都为 Friend。在 Visual Basic 的旧版本中,所有控件都为 Public。现在,您可以选择 Private、Protected、Friend 或 Public。 已改变的属性在 Visual Basic 6.0 中,有四个属性是所有控件所必需的,即:Left、Top、Width 和 Height。虽然这些属性仍然可以使用,但最好使用称为 Location 和 Size 的新结构。表 5 列出了这些新属性,并介绍了这些新属性的结构。
表 5:.NET 中的 Location 和 Size 属性
属性 说明 Location 指出控件所在位置的 X 和 Y 坐标的 Point 结构。在旧版本的 Visual Basic 中,需要使用 Left 和 Top 属性来完成此设置。 Size 指出控件的宽度和高度的 Size 结构。在旧版本的 Visual Basic 中,需要使用 Width 和 Height 属性来完成此设置。 常规控件的变化与 Visual Basic 6.0 相比,.NET 中控件的工作方式发生了很大变化。以下九节介绍了其中一些变化,并介绍了这些变化对您在 .NET 中的开发工作的影响。
.NET 控件的创建与 Visual Basic 6.0 相比,.NET 最大的变化之一是窗体上的实例化控件的代码现在变为可见,以前所有这些代码都隐藏在 ActiveX 控件内部和 Visual Basic 运行时中。现在,展开窗体后面的代码中的 #Region 部分即可查看代码。下面是一个窗体示例,包含一个标签、一个文本框和一个按钮控件。
Public Class frmTest Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() 'Windows 窗体设计器必需此调用。 InitializeComponent() '调用 InitializeComponent() 后添加初始化。 End Sub '窗体覆盖配置以清除组件列表。Protected Overloads Overrides Sub Dispose
(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents TextBox1 As System.Windows.Forms.TextBox Friend WithEvents Button1 As System.Windows.Forms.Button 'Windows 窗体设计器所必需。 Private components As System.ComponentModel.Container '注意:以下步骤是 Windows 窗体设计器所必需的。 '可以使用 Windows 窗体设计器对其进行修改。'请勿使用代码编辑器进行修改。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.Label1 = New System.Windows.Forms.Label() Me.TextBox1 = New System.Windows.Forms.TextBox() Me.Button1 = New System.Windows.Forms.Button() Me.SuspendLayout() ' 'Label1 ' Me.Label1.Name = "Label1" Me.Label1.TabIndex = 0 Me.Label1.Text = "Label1" ' 'TextBox1 ' Me.TextBox1.Location = New System.Drawing.Point(8, 80) Me.TextBox1.Name = "TextBox1" Me.TextBox1.TabIndex = 1 Me.TextBox1.Text = "TextBox1" ' 'Button1 ' Me.Button1.Location = New System.Drawing.Point(112, 32) Me.Button1.Name = "Button1" Me.Button1.TabIndex = 2 Me.Button1.Text = "Button1" ' 'frmTest ' Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13) Me.ClientSize = New System.Drawing.Size(392, 250) Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button1, Me.TextBox1, Me.Label1}) Me.HelpButton = True Me.MaximizeBox = False Me.MinimizeBox = False Me.Name = "frmTest" Me.Text = "frmTest" Me.ResumeLayout(False) End Sub #End Region End Class
可以看出,每个控件都是先创建,然后再对属性(如 Location 和 Size)进行初始化。在 Visual Studio 设计器的“属性”窗口中设置的任何其他属性也将作为代码添加到此处。如果愿意,您可以仅使用“记事本”来设计用户界面!
注意:请勿更改 #Region 区域中的任何代码。当您在窗体中添加或删除控件时,此部分代码将由 Visual Studio 环境自动创建和销毁。 锚定象很多 Visual Basic 开发人员一样,您肯定曾经多次通过编写代码将控件锚定在窗体的右下边。如果您希望用户能够调整窗体大小,但又希望窗体上的某些控件相对于窗体底部和/或右边总是保持位置不变,可以不用编写代码!Visual Studio .NET 提供了一个简单的解决方案:即利用 Anchor 属性。该属性使您可以将控件锚定在容器的任一边或所有边。如果锚定在底部和/或右边,当您调整窗体大小时,控件将呈漂浮状;如果锚定在顶部和/或左边,当您调整窗体大小时,控件的大小也将随之改变。您需要实际操作一下,以了解该属性对控件的影响。
图 1:典型的数据输入屏幕
如图 1 所示,在用键盘键入数据的输入窗体上,您可能希望使 Add、Update、Delete 和 Clear 按钮保持在窗体的右下角。要实现此目的,请突出显示这些按钮,然后将 Anchor 属性设置为 BottomRight。要执行此操作,请在 Properties 窗口中找到 Anchor 属性,并单击其下拉箭头。清除选择左边和上边的栏,然后选择右边和下边的栏,如图 2 所示。
图 2:已激活 Anchor 下拉列表的 Properties 对话框
使用 Anchor 属性,您不必编写任何代码行就能将控件锚定在窗体的任何边。通过选择图形化菜单中的选项,您可以选择所需的操作。在代码中,可以使用诸如 TopLeft、BottomRight、Left、Right、Top、Bottom、TopLeftBottom 和 All 等常量来设置属性值。
靠接Dock 属性类似于 Anchor 属性,使您可以将控件靠接到容器的任何边。靠接控件时,控件将随窗体的缩放而缩放,但其靠接的边保持不变,如果将控件靠接在窗体的所有边,则控件将充满整个窗体。
关于控件数组在 Visual Basic 6.0 中,将所有控件的 Name 属性设置为相同的值便可以创建控件数组。随后,每个控件的 Index 属性会被设置为不同的编号。Index 值被传递给该组控件的任意事件,这样您就可以知道哪个控件调用了该事件。这是 Visual Basic 6.0 中控件数组的用途之一,即一个事件过程处理多个控件的代码。
而在 Visual Basic .NET 中,处理控件数组的方式则大不一样。实现一个过程处理多个控件的事件的方法有两种:使用内嵌于 .NET 类中的 AddHandler 过程,或在过程中使用 Handles 子句。
如果您只希望编写一个 Click 事件,使窗体底部的所有按钮都具备该事件,您可以双击其中一个按钮,使代码窗口生成一个 Click 事件过程。此过程的代码如下:
Private Sub btnSave_Click( _ ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles btnSave.Click, btnNew.Click, btnDelete.Click MessageBox.Show("Click 事件") End Sub
尽管以上代码很简单,但它说明了不同控件如何调用同一过程。除了创建控件数组,您还可以通过创建并指定事件处理程序来响应多个控件的一个或多个事件。
除了 Handles 子句,您还可以使用 AddHandler 语句实现一个过程处理多个控件的事件。该语句使您可以向任何事件添加事件处理程序,并指定要调用的过程。由于可以向事件添加事件处理程序,您可以使用一系列事件处理程序来处理相同的事件,实际上是在告诉控件应该调用哪个过程来响应事件。因为是委托事件处理程序来处理这一新过程,所以此过程称为“代理”。
要使代理生效,请在窗体的 New 方法中现有代码的 TODO 注释下面添加类似下面的代码:
AddHandler btnDelete.Click, AddressOf ButtonClick
AddHandler btnNew.Click, AddressOf ButtonClick
完成上述代码的添加后,如果单击 New、Delete、或 Save 按钮,则会调用 ButtonClick 事件过程。当然,您可能需要确定调用此特殊事件过程的按钮。要做到这一点,您可以使用传递给所有事件过程的 sender 参数,它是产生该特殊事件的对象。因此您可以编写如下代码:
Private Sub ButtonClick( _ ByVal sender As Object, _ ByVal e As System.EventArgs) If sender Is btnNew Then MessageBox.Show("已按下 New 按钮") ElseIf sender Is btnSave Then MessageBox.Show("已按下 Save 按钮") ElseIf sender Is btnDelete Then MessageBox.Show("已按下 Delete 按钮") End If End Sub
这两种创建数组的方法没有本质区别,您可以任意选择一种。
默认和取消按钮在旧版本的 Visual Basic 中,需要将 CommandButton 控件的 Default 属性设置为 True,以告诉 Visual Basic 当按下 Enter 键时应该调用此按钮的 Click 事件;设置另一个 CommandButton 控件的 Cancel 属性,以告诉 Visual Basic 当按下 Esc 键时应该调用此按钮的 Click 事件;然后还必须为上述每个 Click 事件过程编写代码以关闭窗体,并且很可能需要设置属性,告诉调用此窗体的例程按下的是哪个按钮。
现在,无需为这些按钮编写任何代码即可实现此目的,用户只需将每个按钮的 DialogResult 属性设置为特定的值。例如,如果窗体上包含“确定”和“取消”按钮,请将这两个按钮的 DialogResult 属性分别设置为 OK 和 Cancel。然后将窗体的 AcceptButton 属性设置为“确定”按钮,将窗体的 CancelButton 属性设置为“取消”按钮。
完成这些属性的设置后,便可以使用 ShowDialog 方法显示窗体,而且两个按钮都可以自动关闭窗体。然后,窗体的 DialogResult 属性会被设置为在按下的按钮中设置的 DialogResult 值。这样,就可以从调用程序内部确定关闭窗体的按钮。
上下文相关菜单在 Windows 应用程序中,您可能需要为控件指定特殊菜单,以在使用鼠标右键单击该控件时显示该菜单。要在 Visual Basic 6.0 中实现这一功能,您需要将已创建的菜单的 Visible 属性设置为 False,然后在该控件的 Click 事件过程中编写代码,以显示隐藏的菜单。
在 .NET 中,您可以使用 ContextMenu 属性创建与窗体的 MainMenu 完全分开的菜单。您只需设置控件的 ContextMenu 属性,就可以将此菜单指定给该控件,而不必另外编写任何代码。
在窗体上锁定控件创建用户界面后,您需要确保在单击控件添加代码时不会意外地移动控件。Visual Basic 6.0 中有一个选项可以锁定窗体上的所有控件。该选项非常好用,但有时仍需要在大型窗体上处理一小部分内容,这时候就会产生问题。为了处理这一小部分内容,您必须取消所有控件的锁定,这样就有可能不小心移动控件。
在 .NET 中,可以将控件分组锁定或单独锁定,这在大型窗体上处理多组控件时非常有用。
MDI 窗体上的控件在 Visual Basic 6.0 中,只有那些具有 Align 属性的控件才能放置到 MDI 窗体上;而在 .NET 中,您可以将任何控件放置到 MDI 窗体上。
DDE 已被删除在 .NET 语言中,动态数据交换 (DDE) 技术已不再可用。在 .NET 中,程序之间的通讯方法很多,不再需要此技术,因此,所有控件中具有 Link 前缀的所有属性均已被删除。
标准控件的变化本文前面提到过,很多标准控件的属性都发生了变化。下面是已改变的属性或已添加到每个不同标准控件中的属性。下表列出的区别仅限于这些控件的特定属性,前面提到过的公共属性也有变化,在此不再赘述。
标签控件
新属性 说明 Text 此属性在 Visual Basic 6.0 中称为 Caption。文本框控件
新属性 说明 AcceptsReturn 如果设置为 True,则多行文本框会将 CRLF 当作有效字符。要禁止在文本框中输入 CRLF,请将此属性设置为 False。 AcceptsTab 如果设置为 True,则多行文本框会将制表符当作有效字符。要禁止在文本框中输入制表符,请将此属性设置为 False。 CharacterCasing 控制用户在此控件中键入的字母的大小写。选项包括 Normal、UpperCase 和 LowerCase。 ReadOnly 如果要禁止用户在此文本框中输入文本,请将此属性设置为 True。此属性与原来的 Locked 属性功能相同。 TextAlign 当用户在文本区域键入数据时,此属性控制文本的对齐方式。可将此属性设置为 Left、Right 或 Center。按钮控件
新属性 说明 BackgroundImage 允许在按钮上设置背景图像,还可以在图像上添加文本。 DialogResult 当将窗体作为对话框调用时,设置返回结果。如果用户按下此按钮,将返回此属性中的值。 FlatStyle 改变按钮的外观。选项包括 Flat、PopUp、Standard 和 System。如果使用 Windows XP,则应该选择 System,因为此选项允许您使用 XP 主题。 Image 在此按钮中显示的图像。 ImageAlign 按钮中图像的放置位置。 ImageIndex ImageList 控件(在 ImageList 属性中设置)中图像的索引号。 ImageList ImageList 控件的名称,在此控件中使用 ImageIndex 属性检索图像。 Text 此属性在 Visual Basic 6.0 中称为 Caption。 TextAlign 控制按钮上显示的文本的对齐方式。选项包括 left、right、center、middle、top 或 bottom,或任何上述选项的组合。复选框控件
新属性 说明 AutoCheck 如果设置为 True,则单击控件的任意位置,其状态都会从选中变为取消选中。 BackgroundImage 允许在复选框控件上设置背景图像,还可以在图像上添加文本。 CheckAlign 确定复选框控件的位置。Visual Basic 6.0 将文本的位置限制在复选框内的左侧或右侧。现在,您可以选择 left、right、up、down 或 center。 Checked True=选中,False=取消选中。 CheckState 此属性允许用户在设计时设置三种状态,以指明在运行时希望该控件显示的内容。可以选择 Checked、Unchecked 或 Indeterminate。注意:只有在将 ThreeState 属性设置为 True 时,才能设置 Indeterminate 选项。 FlatStyle 改变复选框控件的外观。选项包括 Flat、PopUp、Standard 和 System。 Image 在复选框中显示的图像。 ImageAlign 复选框中图像的放置位置。 ImageIndex ImageList 控件(在 ImageList 属性中设置)中图像的索引号。 ImageList ImageList 控件的名称,在此控件中使用 ImageIndex 属性检索图像。 Text 此属性在 Visual Basic 6.0 中称为 Caption。 ThreeState 如果此属性设置为 True,则可以将 CheckState 属性设置为 Indeterminate,同时它还允许用户在 Checked、Unchecked 和 Indeterminate 三种状态间切换。单选按钮控件
新属性 说明 AutoCheck 如果设置为 True,则单击该控件的任意位置,其状态将从选中变为取消选中。 BackgroundImage 允许在单选按钮上设置背景图像,还可以在图像上添加文本。 CheckAlign 确定单选按钮中选中标记的位置。在 Visual Basic 6.0 中,只能将其放在文本的左侧或右侧。而在 .NET 中,您可以选择 left、right、up、down 或 center。 Checked 此属性在 Visual Basic 6.0 中称为 Value。 FlatStyle 改变单选按钮控件的外观。选项包括 Flat、PopUp、Standard 和 System。 Image 在单选按钮中显示的图像。 ImageAlign 单选按钮中图像的放置位置。 ImageIndex ImageList 控件(在 ImageList 属性中设置)中图像的索引号。 ImageList ImageList 控件的名称,在此控件中使用 ImageIndex 属性检索图像。 Text 此属性在 Visual Basic 6.0 中称为 Caption。 TextAlign 控制单选按钮上显示的文本的对齐方式。可将此属性设置为 left、right、center、middle、top 或 bottom,或上述任何选项的组合。组合框控件
新属性 说明 DisplayMember 在控件的列表部分显示从每一对象加载到 ComboBox 中的项。DisplayMember 的默认值是 ToString 方法。 DropDownStyle 此属性在 Visual Basic 6.0 中称为 Style。与在 Visual Basic 6.0 中一样,您可以选择 Simple、DropDownList 和 DropDown。 DropDownWidth 组合框下拉部分的宽度(以像素计算)。可以不同于窗体上组合框的实际尺寸。 MaxDropDownItems 用户使用组合框的下拉部分时允许显示的项数。 MaxLength 将 DropDownStyle 属性设置为 Simple 时,可以输入的最大字符数。 ValueMember 从选定项中检索数据。默认值为 ToString 方法。列表框控件
新属性 说明 ColumnWidth 将 MultiColumn 属性设置为 True 时各列的宽度。 DisplayMember 在控件的列表部分显示从每一对象加载到 ListBox 中的项。DisplayMember 的默认值是 ToString 方法。 HorizontalExtent 如果将 HorizontalScrollbar 属性设置为 True,则可以在此属性中输入一个数字,表示滚动条可以滚动的最大宽度(以像素计算)。 HorizontalScrollbar 如果不想在数据的宽度大于此方框时显示水平滚动条,请将该属性设置为 False。 ItemHeight 使用固定字体时列表框中各项的高度。 Items 代替 Visual Basic 6.0 ListBox 控件的 List 属性。 MultiColumn 代替 Visual Basic 6.0 中的 Columns 属性。如果希望显示多行,请将此值设置为 True。 ScrollAlwaysVisible 如果希望在数据量很少时仍显示滚动条,请将此属性设置为 True。这有助于用户根据此列表框中可能输入的数据确定列表框的适当宽度。如果在运行时加载数据后,可以看到滚动条,最好能够在数据太大时正确设置控件的宽度。 SelectionMode 代替 Visual Basic 6.0 中的 MultiSelect 属性。 UseTabStop 如果不希望 Tab 字符在列表框中代表不同的列,请将此属性设置为 False。 ValueMember 从选定项中检索数据。默认值为 ToString 方法。图片框控件
新属性 说明 BackgroundImage 允许在图片框上设置背景图像,还可以在图像上添加文本。 BorderStyle 包括 None、Fixed 和 Fixed3D 选项。 Image 用于代替 Picture 属性。 SizeMode 控制图片的显示方式。可以选择的值包括 Normal、StretchImage、AutoSize 和 CenterImage。HScrollBar 控件
新属性 说明 Maximum 代替 Visual Basic 6.0 中的 Max 属性。 Minimum 代替 Visual Basic 6.0 中的 Min 属性。VScrollBar 控件
属性 说明 Maximum 代替 Visual Basic 6.0 中的 Max 属性。 Minimum 代替 Visual Basic 6.0 中的 Min 属性。 其他控件除了 Visual Basic 6.0 中的标准控件外,Visual Basic .NET 中还升级了许多其他控件。实际上,升级的控件非常多,每个控件都可以单独写一篇文章。了解本文列出的变化后,对以后在 .NET 中使用这些新控件时遇到的变化类型就会有一个清楚的认识。
总结在 .NET 中创建用户界面的方式已经发生了很大的变化。您以前使用过的一些控件已经不复存在,或者变得与原来大不一样。要执行特定的操作,您需要使用这些新属性,有时还必须使用系统类来代替控件。您会发现 .NET 控件相对于原来的 ActiveX 控件有了相当大的改进。使用这些新属性和新方法,可以帮助您开发出更好的 Windows 应用程序。
关于作者Paul D. Sheriff 是 PDSA, Inc. (www.pdsa.com) 的老板,该公司位于南加利福尼亚州,是一家自定义软件开发和咨询公司。Paul 是南加利福尼亚的 MSDN 区域总监,著有《Paul Sheriff Teaches Visual Basic》一书,他为 Keystone Learning Systems 制作了 70 多套关于 Visual Basic、SQL Server、.NET 和 Web 开发的视频教材,最近还将与 Ken Getz 合作出版一本关于 SAMS 的书,书名是《ASP.NET Jumpstart》。有关详细信息,请访问 PDSA, Inc. 的 Web 站点,或通过电子邮件地址 [email protected] 直接与 Paul 联系。
关于 Informant Communications GroupInformant Communications Group, Inc. 是一家致力于信息技术行业的多媒体公司。它成立于 1990 年,专门从事软件开发发布、会议、目录发布和 Web 站点工作。ICG 在美国和英国均设有办事处,目前已成为享有盛誉的媒体和营销内容集成商,以高质量的技术信息满足 IT 人员不断增长的需求。
© 2001 Informant Communications Group 和 Microsoft Corporation 版权所有。
技术编辑:PDSA, Inc.
本文地址:http://com.8s8s.com/it/it6488.htm