| 网站首页 | 技术文章 | 下载频道 | 博客 | 编程论坛 |
 
| 技术教程首页 | 开发语言 | WEB开发 | .NET技术 | 数据库 | 操作系统 | 网页制作 |
 
 
您现在的位置: 编程中国 >> 技术教程 >> .NET技术 >> VB.NET >> VB.NET技术资料 >> 正文
  ►  VB6 和 VB2005 中的用户界面控件
VB6 和 VB2005 中的用户界面控件
作者:Bill Sempf    阅读人次:……    文章来源:msdn中国    发布时间:2007/11/16    网友评论()条
 

  VB6VB2005 中的用户界面控件。本文将向大家介绍如何轻松高效地将 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 中构建了一个小型用户控件(仅实现了用于输入美国社会安全号码的三个文本框)。我将使用一些技巧,进行一些设置以查看转换向导的工作方式。

Visual Basic 6 SSN 控件

图 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] 下一页

 

 
文章录入:编辑01    责任编辑:编辑01 
  • 上一篇文章:

  • 下一篇文章:

  •  
    相关文章
    原创地带
    24小时热门帖子