C#学习记录(34)windows应用程序基础之RichTextBox控件
TextBox常用于从用户处获取简短的文本字符串,而RichTextBox用于显示和输入格式化的文本(例如,黑体、下划线和斜体),它使用标准的格式化文本,称为Rich Text Format(富文本格式)或RTF。
属性:
SelectionAlignment 对齐方式 this.richTextBoxText.SelectionAlignment = HorizontalAlignment.Center;
SelectionFont 选中文本或者插入点的字体格式 this.richTextBoxText.SelectionFont = newFont;
RTF特有的事件
LinkClicked 在用户单击文本中的链接时,引发该事件
Protected 在用户尝试修改已经标记为受保护的文本时,引发该事件
SelectionChanged 在选中文本发生变化时,引发该事件。如果因某些原因不希望用户修改选中的文本,就可以在这里禁止修改
LoadFile 加载.rtf文件
SaveFile 保存.rtf文件
Focus 焦点中心
一.UI界面设计
二.业务逻辑
1.设置字体格式处理程序
private void buttonBold_Click(object sender, EventArgs e)
{
Font oldFont;
Font newFont;
// 首先获取当前选中文本正在使用的字体,并把它赋给oldFont
oldFont = this.richTextBoxText.SelectionFont;
if (oldFont.Bold) //如果旧字体格式选中了粗体字
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Bold);//去除粗字体格式
else
newFont = new Font(oldFont, oldFont.Style | FontStyle.Bold);//设置粗字体格式
this.richTextBoxText.SelectionFont = newFont;//富文本的设置字体
this.richTextBoxText.Focus();//为控件设置输入焦点
}
2.下划线处理函数、斜体处理函数
代码与上面的代码相同,但检查对应样式的代码不同。
3.居中处理函数
private void buttonCenter_Click(object sender, EventArgs e)
{
if (this.richTextBoxText.SelectionAlignment == HorizontalAlignment.Center)
this.richTextBoxText.SelectionAlignment = HorizontalAlignment.Left;
else
this.richTextBoxText.SelectionAlignment = HorizontalAlignment.Center;
this.richTextBoxText.Focus();
}
4.尺寸文本编辑框函数
private void textBoxSize_KeyPress(object sender, KeyPressEventArgs e)
{
// 移除所有不是数字、删除退格键和回车键的字符
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13)
{
e.Handled = true; //true表示事件已经处理过了,不再处理该事件
}
else if (e.KeyChar == 13)///如果按键输入的是回车键
{
TextBox txt = (TextBox)sender;
if (txt.Text.Length > 0) //文本长度大于0
ApplyTextSize(txt.Text); //设置文本尺寸
e.Handled = true;////移除字符
this.richTextBoxText.Focus();///为控件设置输入焦点
}
}
5.应用文本框显示的数字
private void ApplyTextSize(string textSize)
{
float newSize = Convert.ToSingle(textSize);
FontFamily currentFontFamily;
Font newFont;
// 将富文本选中的字体家族赋值给当前字体家族
currentFontFamily = this.richTextBoxText.SelectionFont.FontFamily;// 将新字体设置为当前字体家族和新的尺寸
newFont = new Font(currentFontFamily, newSize);
// 将新字体设置为富文本控件的选中字体
this.richTextBoxText.SelectionFont = newFont;
}
6.labellink链接事件
private void richTextBoxText_LinkClicked(object sender, LinkClickedEventArgs e)
{
System.Diagnostics.Process.Start(e.LinkText); ///这个操作可以记忆下来,包括打开文件夹,音乐,影音等
}
7.加载.rtf文件
private void buttonLoad_Click(object sender, EventArgs e)
{
try
{
richTextBoxText.LoadFile("Test.rtf"); //加载文件
}
catch (System.IO.FileNotFoundException)
{
MessageBox.Show("No file to load yet");
}
}
8.保存.rtf文件
private void buttonSave_Click(object sender, EventArgs e)
{
try
{
richTextBoxText.SaveFile("Test.rtf");
}
catch (System.Exception err) ///基本操作,捕抓异常并用消息框弹出来
{
MessageBox.Show(err.Message);
}
}
程序运行如下: