更新:2007 年 11 月
Visual Basic 6.0 中的 RichTextBox 控件在 Visual Basic 2008 中由 Windows 窗体 RichTextBox 控件所取代。某些属性、方法、事件和常量的名称是不同的,在某些情况下,行为也有所不同。
概念差异
AutoVerbMenu 属性
在 Visual Basic 6.0 中,RichTextBox 控件的 AutoVerbMenu 属性用于显示具有一组标准命令的上下文菜单。
在 Visual Basic 2008 中,不再存在 AutoVerbMenu 属性。要为 RichTextBox 控件提供一个上下文菜单,请使用 ContextMenuStrip 组件。有关更多信息,请参见 AutoVerbMenu 属性未升级。
DisableNoScroll 属性
在 Visual Basic 6.0 中,DisableNoScroll 属性确定:在 RichTextBox 控件中,当文本行太少而不需要垂直滚动或字符太少而不需要水平滚动时,是否让滚动条以不可用的形式出现。
In Visual Basic 2008, the DisableNoScroll property no longer exists.可以使用 ScrollBars 属性强制滚动条出现,当不能强制它以不可用的形式出现。
FileName 属性和 LoadFile 方法
在 Visual Basic 6.0 中,FileName 属性或 LoadFile 方法可用于将一个 .rtf 文件或文本文件加载到 RichTextBox 控件中。
在 Visual Basic 2008 中,只有 LoadFile 方法可用;不能在设计时分配文件。
SelPrint 方法
在 Visual Basic 6.0 中,RichTextBox 控件的 SelPrint 方法可用于打印该控件的内容。它带有一个参数 hDC,用于指定设备的设备上下文。
在 Visual Basic 2008 中,不再存在 SelPrint 方法,设备上下文也不再用于打印。RichTextBox 控件不提供打印其内容的方法。但是,您可以扩展 RichTextBox 类以使用 EM_FORMATRANGE 消息。然后,可以将 RichTextBox 的内容发送到输出设备,如打印机。有关更多信息,请参见 SelPrint 属性未升级。
SelTabCount 属性
在 Visual Basic 6.0 中,SelTabCount 属性确定在选定的段落中或在这些段落中的插入点后的 Tab 位置数。
在 Visual Basic 2008 中,不再存在 SelTabCount 属性,它被 SelectionTabs 属性的 Length 参数 (SelectionTabs.Length) 替换。
Span 方法
在 Visual Basic 6.0 中,RichTextBox 控件的 Span 方法可以用来基于一组指定的字符选择文本范围。
在 Visual Basic 2008 中,不再存在 Span 方法。可以使用带有 characterSet() 参数的 Find 方法查找指定的字符,然后使用 SelectedText 属性来选择范围。
Upto 方法
在 Visual Basic 6.0 中,RichTextBox 控件的 Upto 方法可以用于将插入点向前移动到一组指定的字符中的第一个字符(但不包括)。
在 Visual Basic 2008 中,不再存在 Upto 方法。可以使用带有 characterSet() 参数的 Find 方法查找指定的字符,然后使用 SelectionStart 属性移动插入点。
其他差异
此外,还有大量适用于所有控件的概念差异,包括数据绑定、字体处理、拖放功能、帮助支持等方面的差异。有关更多信息,请参见适用于 Visual Basic 6.0 用户的 Windows 窗体概念。
RichTextBox 控件的代码更改
下面的示例演示 Visual Basic 6.0 与 Visual Basic 2008 在编码方法方面的差异。
用于在 RichTextBox 控件中进行搜索的代码更改
下面的代码演示在 RichTextBox 控件中如何从插入点到句子末尾进行搜索并突出显示它。该示例需要一个在其 Text 属性中输入了一个或多个句子的 RichTextBox 控件,同时还需要一个 Button 控件。由于是从按钮的 Click 事件中调用代码,所以应将 RichTextBox 的 HideSelection 属性设置为 False;否则突出显示将不可见。
' Visual Basic 6.0
' Make sure that HideSelection is set to False.
Private Sub Command1_Click()
    RichTextBox1.Span ".?!", True, True
End Sub
' Visual Basic
' Make sure that HideSelection is set to False.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
    Dim endChars() As Char = New Char() {".", "!", "?"}
    Dim intEnd As Integer
    intEnd = RichTextBox1.Find(endChars, RichTextBox1.SelectionStart)
    RichTextBox1.SelectionLength = intEnd - RichTextBox1.SelectionStart
End Sub
RichTextBox 控件的属性、方法和事件的等效项
下表列出了 Visual Basic 6.0 属性、方法和事件,以及它们的 Visual Basic 2008 等效项。具有相同的名称和行为的属性、方法和事件未予列出。除非另有说明,否则所有的 Visual Basic 2008 枚举都映射到 System.Windows.Forms 命名空间。
此表提供相关主题的链接,这些主题对行为之间的差异进行说明。如果 Visual Basic 2008 中没有直接等效项,则提供指向介绍其他替代项的主题的链接。
属性
| Visual Basic 6.0 | Visual Basic 2008 等效项 | ||
|---|---|---|---|
| Appearance | 新的实现。有关更多信息,请参见 Appearance 和 BorderStyle 属性(针对 Visual Basic 6.0 用户)。 | ||
| AutoVerbMenu | 新的实现。有关更多信息,请参见 AutoVerbMenu 属性未升级。 | ||
| BackColor | 
 | ||
| Container | |||
| DataBindings DataChanged DataField DataFormat DataMember DataSource | 新的实现。有关更多信息,请参见适用于 Visual Basic 6.0 用户的数据访问。 | ||
| DisableNoScroll | 新的实现。 | ||
| DragIcon DragMode | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| FileName | LoadFile 方法 | ||
| Font FontBold FontItalic FontName FontSize FontStrikethrough FontUnderline | 
 | ||
| ForeColor | 
 | ||
| Height | 
 | ||
| HelpContextID | 新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。 | ||
| HWnd | |||
| Index | 新的实现。有关更多信息,请参见控件数组(针对 Visual Basic 6.0 用户)。 | ||
| Left | 
 | ||
| MouseIcon | 新的实现。有关更多信息,请参见无法设置自定义 MousePointer。 | ||
| MousePointer | 有关常量的列表,请参见 MousePointer(针对 Visual Basic 6.0 用户)。 | ||
| OLEDragMode OLEDropMode | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| Parent | FindForm 方法 | ||
| SelAlignment | |||
| SelBold | |||
| SelBullet | |||
| SelCharOffset | |||
| SelColor | |||
| SelFontName | |||
| SelFontSize | |||
| SelHangingIndent | |||
| SelIndent | |||
| SelItalic | |||
| SelLength | |||
| SelProtected | |||
| SelRightIndent | |||
| SelRTF | |||
| SelStart | |||
| SelStrikethru | |||
| SelTabCount | SelectionTabs.Length | ||
| SelTabs | |||
| SelText | |||
| SelUnderline | |||
| TextRTF | |||
| 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 用户)。 | ||
| GetLineFromChar | |||
| LinkExecute LinkPoke LinkRequest LinkSend | 无等效项。有关更多信息,请参见动态数据交换(针对 Visual Basic 6.0 用户)。 | ||
| Move | 
 | ||
| OLEDrag | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | ||
| SelPrint | 新的实现。有关更多信息,请参见 SelPrint 属性未升级。 | ||
| SetFocus | |||
| ShowWhatsThis | 新的实现。有关更多信息,请参见帮助支持(针对 Visual Basic 6.0 用户)。 | ||
| Span | 无直接等效项。使用带有 characterSet 参数的Find 方法。 | ||
| Upto | 无直接等效项。使用带有 characterSet 参数的Find 方法。 | ||
| ZOrder | BringToFront 或 SendToBack 函数 | 
事件
| Visual Basic 6.0 | Visual Basic 2008 等效项 | 
|---|---|
| Change | |
| DblClick | |
| DragDrop DragOver | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | 
| GotFocus | |
| LostFocus | |
| OLECompleteDrag OLEDragDrop OLEDragOver OLEGiveFeedback OLESetData OLEStartDrag | 新的实现。有关更多信息,请参见拖放(针对 Visual Basic 6.0 用户)。 | 
| SelChange | |
| Validate | 
升级说明
当 Visual Basic 6.0 应用程序升级到 Visual Basic 2008 时,所有 RichTextBox 控件都升级为 Windows 窗体 RichTextBox 控件,属性、方法和事件升级为其各自的等效项。在可能存在行为差异的情况下,向代码中插入升级注释。
.gif) 说明:
说明: