更新:2007 年 11 月
Visual Basic 6.0 中的 TextBox 控件在 Visual Basic 2008 中由 Windows 窗体 TextBox 控件所取代。某些属性、方法、事件和常数的名称是不同的,在某些情况下,行为也有所不同。
概念差异
在 Visual Basic 6.0 中,MaxLength 属性确定可以输入到 TextBox 控件中的字符数。如果尝试以编程方式插入文本,则该文本会在 MaxLength 属性指定的长度处截断。
在 Visual Basic 2008 中,MaxLength 属性的行为不再应用于以编程方式添加的文本。若要复制 Visual Basic 6.0 行为,需要自己截断字符串。
在 Visual Basic 6.0 中,PasswordChar 属性的类型为 String;在 Visual Basic 2008 中,该属性的类型为 Char。
此外,还有许多应用于所有控件的概念差异,包括数据绑定、字体处理、拖放操作、帮助支持等方面的差异。有关更多信息,请参见适用于 Visual Basic 6.0 用户的 Windows 窗体概念。
用于 TextBox 控件的代码更改
下面的示例演示 Visual Basic 6.0 与 Visual Basic 2008 在编码方法方面的差异。
用于在 TextBox 控件中进行搜索的代码更改
下面的代码演示如何在 TextBox 控件中搜索一个字符串并突出显示它。
' Visual Basic 6.0
Private Sub Form_Load ()
    Text1.Text = "Two of the peak human experiences"
    Text1.Text = Text1.Text & " are good food and classical music."
End Sub
Private Sub Form_Click ()
    Dim Search, Where
    ' Get search string from user.
    Search = InputBox("Enter text to be found:")
    ' Find string in text.
    Where = InStr(Text1.Text, Search)
    If Where Then
        Text1.SetFocus
        Text1.SelStart = Where - 1
        Text1.SelLength = Len(Search)
    Else
        MsgBox "String not found."
    End If
End Sub
' Visual Basic
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
    TextBox1.Text = "Two of the peak human experiences are "
    TextBox1.Text = TextBox1.Text & "good food and classical music."
End Sub
Private Sub Form1_Click(ByVal sender As Object, ByVal e As _
System.EventArgs) Handles Me.Click
    Dim Search As String
    Dim Where As String
    ' Get search string from user.
    Search = InputBox("Enter text to be found:")
    ' Find string in text.
    Where = InStr(TextBox1.Text, Search)
    If Where Then
        TextBox1.Focus()
        TextBox1.SelectionStart = Where - 1
        TextBox1.SelectionLength = Len(Search)
    Else
        MsgBox("String not found.")
    End If
End Sub
用于限制 TextBox 控件中的字符数的代码更改
下面的代码演示如何使用 MaxLength 属性来指定最大字符数。
' Visual Basic 6.0
Private Sub Form_Load()
    Text1.MaxLength = 5
End Sub
Private Sub SetText()
    ' Only the first five characters will be displayed.
    Text1.Text = "Hello World"
End Sub
' Visual Basic
Private Sub Form1_Load2(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
    TextBox1.MaxLength = 5
End Sub
Private Sub SetText()
    ' Truncate the string to equal MaxLength.
    TextBox1.Text = Strings.Left("Hello World", TextBox1.MaxLength)
End Sub
TextBox 控件的属性、方法和事件的等效项
下表列出了 Visual Basic 6.0 属性、方法和事件,以及它们的 Visual Basic 2008 等效项。具有相同的名称和行为的属性、方法和事件未予列出。除非另有说明,否则所有的 Visual Basic 2008 枚举都映射到 System.Windows.Forms 命名空间。
此表提供相关主题的链接,这些主题对行为之间的差异进行说明。如果 Visual Basic 2008 中没有直接等效项,则提供指向介绍其他替代项的主题的链接。
属性
| Visual Basic 6.0 | Visual Basic 2008 等效项 | ||
|---|---|---|---|
| Alignment | |||
| Appearance | 新的实现。有关更多信息,请参见 Appearance 和 BorderStyle 属性(针对 Visual Basic 6.0 用户)。 | ||
| BackColor | 
 | ||
| Container | |||
| DataChanged DataField DataFormat DataMember DataSource | 新的实现。有关更多信息,请参见适用于 Visual Basic 6.0 用户的数据访问。 | ||
| DragIcon DragMode | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| Font FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline | 
 | ||
| ForeColor | 
 | ||
| Height | 
 | ||
| HelpContextID | 新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。 | ||
| HWnd | |||
| Index | 新的实现。有关更多信息,请参见控件数组(针对 Visual Basic 6.0 用户)。 | ||
| Left | 
 | ||
| LinkItem LinkMode LinkTimeOut LinkTopic | 新的实现。有关更多信息,请参见动态数据交换(针对 Visual Basic 6.0 用户)。 | ||
| Locked | |||
| MouseIcon | 新的实现。有关更多信息,请参见无法设置自定义 MousePointer。 | ||
| MousePointer | 有关常数的列表,请参见 MousePointer(针对 Visual Basic 6.0 用户)。 | ||
| OLEDragMode OLEDropMode | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| Parent | FindForm 方法。 | ||
| SelLength | |||
| SelStart | |||
| SelText | |||
| ToolTipText | ToolTip 组件。 有关更多信息,请参见工具提示支持(针对 Visual Basic 6.0 用户)。 | ||
| Top | 
 | ||
| WhatsThisHelpID | 新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。 | ||
| Width | 
 | 
方法
| Visual Basic 6.0 | Visual Basic 2008 等效项 | ||
|---|---|---|---|
| Drag | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| LinkExecute LinkPoke LinkRequest LinkSend | 新的实现。有关更多信息,请参见动态数据交换(针对 Visual Basic 6.0 用户)。 | ||
| Move | 
 | ||
| OLEDrag | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| SetFocus | |||
| ShowWhatsThis | 新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。 | ||
| ZOrder | BringToFront 或 SendToBack 函数 | 
事件
| Visual Basic 6.0 | Visual Basic 2008 等效项 | 
|---|---|
| Change | |
| DblClick | |
| DragDrop DragOver | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | 
| GotFocus | |
| LinkClose LinkError LinkNotify LinkOpen | 新的实现。有关更多信息,请参见动态数据交换(针对 Visual Basic 6.0 用户)。 | 
| LostFocus | |
| OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | 
| Validate | 
升级说明
当 Visual Basic 6.0 应用程序升级到 Visual Basic 2008 时,所有 TextBox 控件都升级为 Windows 窗体 TextBox 控件,属性、方法和事件升级为其各自的等效项。在可能存在行为差异的情况下,向代码中插入升级注释。
.gif) 说明:
说明: