b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

RichTextBox控件 可读取rtf(2)

电脑杂谈  发布时间:2020-02-10 23:02:08  来源:网络整理

文本编辑器能进行的最后一个格式化操作是设定文本的大小。为文本框Size添加两个事件处理程序,一个处理程序控制输入,另一个处理程序测试用户输入完一个值的时间。

在Properties窗口的Events列表中找到并双击textBoxSize 控件的KeyPress和Validated事件,给处理程序添加代码。

与上面例子使用的Validating不同,Validated事件在进行完验证后引起。这两个事件处理程序都使用一个帮助方式ApplyTextSize,该方式带有一个字符串参数,表示文本的大小:

private void textBoxSize_KeyPress(object sender, KeyPressEventArgs e)

{

// Remove all characters that are not numbers, backspace and enter.

if ((e.KeyChar < 48 || e.KeyChar > 57) &&

e.KeyChar != 8 && e.KeyChar != 13)

{

e.Handled = true;

}

else if (e.KeyChar == 13)

{

// Apply size if the user hits enter

TextBox txt = (TextBox)sender;

if (txt.Text.Length > 0)

ApplyTextSize(txt.Text);

e.Handled = true;

this.richTextBoxText.Focus();

}

}

private void textBoxSize_Validated(object sender, CancelEventArgs e)

{

TextBox txt = (TextBox)sender;

ApplyTextSize(txt.Text);

this.richTextBoxText.Focus();

}

private void ApplyTextSize(string textSize)

{

// Convert the text to a float because we'll be needing a float shortly

float newSize = Convert.ToSingle(textSize);

FontFamily currentFontFamily;

c richtextbox rtf_richtextbox rtf_richtextbox wpf

Font newFont;

// Create a new font of the same family but with the new size

currentFontFamily = this.richTextBoxText.SelectionFont.FontFamily;

newFont = new Font(currentFontFamily, newSize);

// Set the font of the selected text to the new font

this.richTextBoxText.SelectionFont = newFont;

}

KeyPress事件只允许用户输入一个整数,并在用户按下回车键时,调用ApplyTextSize。我们感兴趣的是帮助方式ApplyTextSize。它首先把文本的大小从字符串转换为异或数,我们只允许用户输入整数,但在创建新字体时,需要使用浮点数,所以把它转化为恰当的数据类别。

之后,获取字体所属的字体系列,从该系列中建立一个带有新字号的新字体。最后,把选中文本的图标设置为新字体。

这就是我们所能进行的所有格式化操作,有一些操作可以由RichTextBox本身处理。如果今天尝试运行这个例子,就可以把文本修改为粗体、斜体和破折号,还可以居中文本。这就是我们希望的操作,但也有一些非常有趣的操作。试着在文本中输入一个网址,例如 ,该文本就被控件识别为一个Internet地址,加上下划线,当把光标指针移至该文本的上边时,鼠标指针经常做成手的颜色。单击该文本,就会开启一个网页。我们必须处理客户单击链接时引起的事件:LinkClicked。

在Properties窗口的Events列表中找到LinkClicked事件,双击它,给事件处理程序中添加代码。我们曾经没有见过这个事件处理程序。它用于提供单击链接的文本,处理程序比较简洁,如下所示:

private void richTextBoxText_LinkedClick(object sender,

System.Windows.Forms.LinkClickedEventArgs e)

{

System.Diagnostics.Process.Start(e.LinkText);

}

这段代码打开了默认的浏览器(如果浏览器没有打开),并导航至该链接指向的站点。

应用程序的编辑部分就完成了。剩下的是读取跟储存控件的内容。这里使用一个固定的文件。双击Load按钮,添加以下的代码:

private void buttonLoad_Click(object sender, EventArgs e)

{

// Load the file into the RichTextBox

try

{

richTextBoxText.LoadFile("Test.rtf");

}

catch (System.IO.FileNotFoundException)

{

MessageBox.Show("No file to load yet");

}

}

这就完成了,不需要做其它工作。因为我们处理的是文件,所以总是有也许遇到异常,必须处理这种异常。在Load方法中,处理了因文件不存在而抛出的异常。保存文件只是这种,双击Save按钮,添加以下的代码:

private void buttonSave_Click(object sender, EventArgs e)

{

// Save the text

try

{

richTextBoxText.SaveFile("Test.rtf");

}

catch (System.Exception err)

{

MessageBox.Show(err.Message);

}

}

现在运行实例,格式化一些文本,再点击Save按钮。清空文本框,单击Load按钮,刚才保存的文本经常重新显示出来。

这是一个RichTextBox示例。运行它时,应得到如图15-15所示的结果。

图 15-15


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-140347-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...