摘要
Windows 多格式文本框控件。
RichTextBox使用控件,用户可以输入和编辑文本。 该控件还提供比标准 TextBox 控件更高级的格式设置功能。 可以将文本直接分配给控件,也可以从 RTF) 或纯文本文件 (RTF 格式加载。 控件中的文本可以分配字符和段落格式,它可以实现显示字体、颜色、链接、从文件加载文本及嵌入的图像、撤消和重复编辑操作以及查找指定的字符等功能。
正文
属性
AllowDrop | 获取或设置一个值,该值指示控件是否允许拖放操作。 |
Anchor | 获取或设置控件绑定到的容器的边缘并确定控件如何随其父级一起调整大小。 (继承自 Control) |
AutoScrollOffset | 获取或设置一个值,该值指示在 ScrollControlIntoView(Control) 中将控件滚动到何处。 (继承自 Control) |
AutoSize | 此属性与此类无关。 |
AutoWordSelection | 获取或设置一个值,通过该值指示是否启用自动选择字词。 |
BackColor | 获取或设置控件的背景色。 (继承自 TextBoxBase) |
BackgroundImage | 此属性与此类无关。 |
BackgroundImageLayout | 此属性与此类无关。 |
BindingContext | 获取或设置控件的 BindingContext。 (继承自 Control) |
BorderStyle | 获取或设置文本框控件的边框类型。 (继承自 TextBoxBase) |
Bottom | 获取控件上边缘与其容器工作区的上边缘之间的距离(以像素为单位)。 (继承自 Control) |
Bounds | 获取或设置控件(包括其非工作区元素)相对于其父控件的大小和位置(以像素为单位)。 (继承自 Control) |
BulletIndent | 获取或设置对文本应用项目符号样式时,RichTextBox 控件中使用的缩进。 |
CanFocus | 获取一个值,该值指示控件是否可以接收焦点。 (继承自 Control) |
CanRedo | 获取一个值,通过该值指示在 RichTextBox 内发生的操作中是否有可以重新应用的操作。 |
CanSelect | 获取一个值,该值指示是否可以选中控件。 (继承自 Control) |
CanUndo | 获取一个值,该值指示用户在文本框控件中能否撤消前一操作。 (继承自 TextBoxBase) |
DetectUrls | 获取或设置一个值,通过该值指示当在控件中键入某个统一资源定位器 (URL) 时,RichTextBox 是否自动设置 URL 的格式。 |
DeviceDpi | 获取显示当前控件的显示设备的 DPI 值。 (继承自 Control) |
DisplayRectangle | 获取表示控件的显示区域的矩形。 (继承自 Control) |
Disposing | 获取一个值,该值指示 Control 基类是否在释放进程中。 (继承自 Control) |
Dock | 获取或设置哪些控件边框停靠到其父控件并确定控件如何随其父级一起调整大小。 (继承自 Control) |
DoubleBuffered | 获取或设置一个值,该值指示是否在显示控件前在缓冲区中完成控件绘制。 此属性与此类无关。 (继承自 TextBoxBase) |
EnableAutoDragDrop | 获取或设置一个值,该值在文本、图片和其他数据上启用拖放操作。 |
Enabled | 获取或设置一个值,该值指示控件是否可以对用户交互作出响应。 (继承自 Control) |
Events | 获取附加到此 Component 的事件处理程序的列表。 (继承自 Component) |
Focused | 获取一个值,该值指示控件是否有输入焦点。 (继承自 Control) |
Font | 获取或设置控件显示的文字的字体。 |
FontHeight | 获取或设置控件的字体的高度。 (继承自 Control) |
ForeColor | 获取或设置控件的前景色。 |
HideSelection | 获取或设置一个值,该值指示当文本框控件没有焦点时,该控件中选定的文本是否保持突出显示。 (继承自 TextBoxBase) |
Lines | 获取或设置文本框控件中的文本行。 (继承自 TextBoxBase) |
Location | 获取或设置该控件的左上角相对于其容器的左上角的坐标。 (继承自 Control) |
Margin | 获取或设置控件之间的空间。 (继承自 Control) |
MaximumSize | 获取或设置大小,该大小是 GetPreferredSize(Size) 可以指定的上限。 (继承自 Control) |
MaxLength | 获取或设置用户可在多格式文本框控件中键入或粘贴的最大字符数。 |
MinimumSize | 获取或设置大小,该大小是 GetPreferredSize(Size) 可以指定的下限。 (继承自 Control) |
Modified | 获取或设置一个值,该值指示自创建文本框控件或上次设置该控件的内容后,用户修改了该控件。 (继承自 TextBoxBase) |
Multiline | 获取或设置一个值,该值指示这是否为多行 RichTextBox 控件。 |
Name | 获取或设置控件的名称。 (继承自 Control) |
Padding | 此属性与此类无关。 (继承自 TextBoxBase) |
RedoActionName | 获取当调用 Redo() 方法后,可以重新应用到控件的操作名称。 |
Right | 获取控件右边缘与其容器的工作区左边缘之间的距离(以像素为单位)。 (继承自 Control) |
RightMargin | 获取或设置 RichTextBox 控件内单个文本行的大小。 |
RightToLeft | 获取或设置一个值,该值指示是否将控件的元素对齐以支持使用从右向左的字体的区域设置。 (继承自 Control) |
Rtf | 获取或设置 RichTextBox 控件的文本,包括所有 RTF 格式代码。 |
ScaleChildren | 获取一个值,该值确定子控件的缩放。 (继承自 Control) |
ScrollBars | 获取或设置 RichTextBox 控件中显示的滚动条类型。 |
SelectedRtf | 获取或设置控件中当前选择的 RTF 格式的格式化文本。 |
SelectedText | 获取或设置 RichTextBox 内的选定文本。 |
SelectionAlignment | 获取或设置应用到当前选定内容或插入点的对齐方式。 |
SelectionBackColor | 获取或设置在 RichTextBox 控件中选中文本时文本的颜色。 |
SelectionBullet | 获取或设置一个值,通过该值指示项目符号样式是否应用到当前选定内容或插入点。 |
SelectionCharOffset | 获取或设置控件中的文本是显示在基线上、作为上标还是作为基线下方的下标。 |
SelectionColor | 获取或设置当前选定文本或插入点的文本颜色。 |
SelectionFont | 获取或设置当前选定文本或插入点的字体。 |
SelectionHangingIndent | 获取或设置选定段落中第一行文本的左边缘和同一段落中后面各行的左边缘之间的距离。 |
SelectionIndent | 获取或设置所选内容开始行的缩进距离(以像素为单位)。 |
SelectionLength | 获取或设置控件中选定的字符数。 |
SelectionProtected | 获取或设置一个值,通过该值指示是否保护当前选定文本。 |
SelectionRightIndent | RichTextBox 控件右边缘与选中文本或在当前插入点添加的文本的右边缘之间的距离(以像素为单位)。 |
SelectionStart | 获取或设置文本框中选定的文本起始点。 (继承自 TextBoxBase) |
SelectionTabs | 获取或设置 RichTextBox 控件中的绝对制表位位置。 |
SelectionType | 获取控件内的选定内容类型。 |
ShortcutsEnabled | 获取或设置一个值,该值指示是否启用已定义的快捷方式。 (继承自 TextBoxBase) |
ShowFocusCues | 获取一个值,该值指示控件是否应显示聚焦框。 (继承自 Control) |
ShowKeyboardCues | 获取一个值,该值指示用户界面是否处于适当的状态以显示或隐藏键盘快捷键。 (继承自 Control) |
ShowSelectionMargin | 获取或设置一个值,通过该值指示 RichTextBox 中是否显示选定内容的边距。 |
TabIndex | 获取或设置控件在其容器内的 Tab 键顺序。 (继承自 Control) |
TabStop | 获取或设置一个值,该值指示用户能否使用 Tab 键将焦点放到该控件上。 (继承自 Control) |
Tag | 获取或设置包含有关控件的数据的对象。 (继承自 Control) |
Text | 获取或设置多格式文本框中的当前文本。 |
TextLength | 获取控件中文本的长度。 |
Top | 获取或设置控件上边缘与其容器的工作区上边缘之间的距离(以像素为单位)。 (继承自 Control) |
TopLevelControl | 获取没有另一个 Windows 窗体控件作为其父级的父控件。 通常,这是控件所在的最外面的 Form。 (继承自 Control) |
UndoActionName | 获取调用 Undo() 方法后在控件中可撤消的操作名称。 |
UseWaitCursor | 获取或设置一个值,该值指示是否将等待光标用于当前控件以及所有子控件。 (继承自 Control) |
Visible | 获取或设置一个值,该值指示是否显示该控件及其所有子控件。 (继承自 Control) |
Width | 获取或设置控件的宽度。 (继承自 Control) |
WindowTarget | 此属性与此类无关。 (继承自 Control) |
WordWrap | 指示多行文本框控件在必要时是否自动换行到下一行的开始。 (继承自 TextBoxBase) |
ZoomFactor | 获取或设置 RichTextBox 的当前缩放级别。 |
设置滚动条
ScrollBars 设置为ForcedVertical
Both | 3 | 在需要时同时显示水平滚动条和垂直滚动条。 |
ForcedBoth | 19 | 始终同时显示水平滚动条和垂直滚动条。 |
ForcedHorizontal | 17 | 始终显示水平滚动条。 |
ForcedVertical | 18 | 始终显示垂直滚动条。 |
Horizontal | 1 | 仅在文本比控件的宽度长时显示水平滚动条。 |
None | 0 | 不显示滚动条。 |
Vertical | 2 | 仅在文本比控件的高度长时显示垂直滚动条。 |
ScrollBars设置为Both
WordWrap为false时,即使文本超过RichTextBox的宽度,也不会自动换行到下一行,只有用户输入回车时才会换行,并且当文本超过RichTextBox的宽度后,才会显示水平滚动条。
设置字体属性
RichTextBox的Font属性和ForeColor属性设置,也可通过代码实现,如文本字体设置为楷体,字体大小为12,字样是粗体,文本颜色为红色。
private void btnSetFont_Click(object sender, EventArgs e)
{
txtMsg.SelectionFont = new Font("楷体", 12, FontStyle.Bold); //设置SelectionFont属性实现控件中的文本为楷体,大小为12,字样是粗体
txtMsg.SelectionColor = System.Drawing.Color.Red; //设置SelectionColor属性实现控件中的文本颜色为红色
}
设置超链接样式
以“http://”开头的Web链接地址作为超链接文本时,运行时RichTextBox超链接文本会自动变成蓝色字体且有下划线。
添加一个点击link事件
添加LinkClicked事件
private void txtMsg_LinkClicked(object sender, LinkClickedEventArgs e)
{
MessageBox.Show(e.LinkText);
}
SelectionBullet
设置SelectionBullet属性将选定的段落设置为项目符号列表的格式,也可以使用SelectionIndent属性和SelectionHangingIndent属性设置段落相对于控件的左右边缘进行缩进。下面用代码将控件的SelectionBullet属性设置为true,使控件中的内容以项目符号列表的格式排列。
private void btnSetBullet_Click(object sender, EventArgs e)
{
txtMsg.SelectionBullet = true;
}
SelectionIndent
SelectionIndent属性设置一个整数,该整数表示控件的左边缘和文本的左边缘之间的距离(以像素为单位)。通过SelectionRightIndent属性设置一个整数,该整数表示控件的右边缘与文本的右边缘之间的距离(以像素为单位)。
private void btnSetIndent_Click(object sender, EventArgs e)
{
txtMsg.SelectionIndent = 50;
}
载入Rft文件
private void btnLoadFile_Click(object sender, EventArgs e)
{
txtMsg.LoadFile("./a.rtf");
txtMsg.Find("基尔斯", RichTextBoxFinds.MatchCase);
txtMsg.SelectionFont = new Font("Verdana", 12, FontStyle.Bold);
txtMsg.SelectionColor = Color.Red;
}