VB6 和 VB2005 中的用户界面控件。本文将向大家介绍如何轻松高效地将 Visual Basic 6 用户界面控件转换到 Visual Basic 2005 中。
简介
在进行 Visual Basic 6 应用程序转换时,有少量控件会比不进行转换的控件带来更多问题。在您拥有源代码的项目的控件、1997 年买回来的自定义 ActiveX 控件以及没有实际转换路径的内置 Microsoft 控件之间,要进行转换不是那么容易的。
不过,还是有可能的。Visual Basic 6 用户控件中的代码可以很好地转换到 Visual Basic 2005 中。您可以通过互操作功能来使用某些第三方控件。Visual Studio 2005 中提供的工具有助于创建 OCX 代理。所有功能都不会丢失。
集成用户控件
最大的问题是 Microsoft 稍微调整了用户控件的定义。由于继承的使用,我们实际上可以将用户控件定义为控件集合,从而扩展控件的概念。在 Visual Basic 6 中,用户控件只是可以驻留在其他窗体中的窗体。
幸运的是 Visual Basic 2005 可以出色地完成更改工作。多数更改工作均在后台进行,但是即使细微的设置,Visual Basic 6 升级向导也能很好地对其进行转换。接下来我将对此进行解释。
将带有用户控件的 Visual Basic 6 项目转移到 Visual Basic 2005 中
我在 Visual Basic 6 中构建了一个小型用户控件(仅实现了用于输入美国社会安全号码的三个文本框)。我将使用一些技巧,进行一些设置以查看转换向导的工作方式。

图 1:Visual Basic 6 SSN 控件
我将使用 TextChanged 事件,以在文本框具有正确的字符数时在它们之间自动切换。我将该事件驻留在一个简单的窗体中(该窗体只是在消息框中显示结果),并通过转换向导运行该事件。这是一个相当简单的过程:只需在 Visual Studio 2005 中使用“文件”->“打开项目...”菜单项来打开 Visual Basic 6 项目。
令人高兴的是 Visual Basic 2005 可以非常出色地对其进行处理。向导可以正确地以 Visual Basic 2005 格式创建窗体和用户控件。甚至还添加了 ToolTip ExtenderProvider,以支持默认情况下 Visual Basic 6 中的 TextBox 控件和用户控件的实例所具有的 ToolTip 属性。(请注意示例程序文件中的程序员注释使用的是英文,本文中将其译为中文是为了便于参考。)
列表 1:两个版本的代码比较
Visual Basic 6 代码
|
以下是引用片段: Private Sub Three_Change() If Len(Three.Text) = 3 Then Two.SetFocus End If End Sub
Private Sub Two_Change() If Len(Two.Text) = 2 Then Four.SetFocus End If End Sub
Public Property Get SocialSecurityNumber() SocialSecurityNumber = Three.Text & _ "-" & Two.Text & "-" & Four.Text End Property
|
Visual Basic 2005 代码
|
以下是引用片段: Option Strict Off Option Explicit On Friend Class UserControl1 Inherits System.Windows.Forms.UserControl
Private Sub Three_TextChanged(ByVal eventSender As _ System.Object, ByVal eventArgs As System.EventArgs) _ Handles Three.TextChanged If Len(Three.Text) = 3 Then Two.Focus() End If End Sub
Private Sub Two_TextChanged(ByVal eventSender As _ System.Object, ByVal eventArgs As System.EventArgs) _ Handles Two.TextChanged If Len(Two.Text) = 2 Then Four.Focus() End If End Sub
Public ReadOnly Property _ SocialSecurityNumber() As Object Get SocialSecurityNumber = Three.Text & _ "-" & Two.Text & "-" & Four.Text End Get End Property
|
[1] [2] [3] 下一页