代碼如下: public partial class RichTextBox : Form ... { public RichTextBox() ...{ InitializeComponent(); txtSize.KeyPress += new KeyPressEventHandler(txtSize_KeyPress); txtSize.Validating += new CancelEventHandler(txtSize_Validating); rtpText.LinkClicked += new LinkClickedEventHandler(rtpText_LinkClicked); } void rtpText_LinkClicked(object sender, LinkClickedEventArgs e) ...{ System.Diagnostics.Process.Start(e.LinkText); } void txtSize_Validating(object sender, CancelEventArgs e) ...{ TextBox txt = (TextBox)sender; ApplyTextSize(txt.Text); rtpText.Focus(); } void txtSize_KeyPress(object sender, KeyPressEventArgs e) ...{ if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13) ...{ e.Handled = true; } else if (e.KeyChar == 13) ...{ TextBox txt = (TextBox)sender; if (txt.Text.Length > 0) ApplyTextSize(txt.Text); e.Handled = true; rtpText.Focus(); } } void ApplyTextSize(string txt) ...{ if (txtSize.Text.Trim().Length > 0) ...{ float newSize = Convert.ToSingle(txtSize.Text.Trim()); FontFamily currentFontFamily; Font newFont; currentFontFamily = rtpText.SelectionFont.FontFamily; newFont = new Font(currentFontFamily, newSize); rtpText.SelectionFont = newFont; } } private void btnBold_Click(object sender, EventArgs e) ...{ try ...{ Font oldFont; Font newFont; oldFont = rtpText.SelectionFont; if (oldFont.Bold == true) newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Bold); else newFont = new Font(oldFont, oldFont.Style | FontStyle.Bold); rtpText.SelectionFont = newFont; this.rtpText.Focus(); } catch (Exception ex) ...{ MessageBox.Show(ex.ToString()); } } private void btnItalic_Click(object sender, EventArgs e) ...{ Font oldFont; Font newFont; oldFont = rtpText.SelectionFont; if (oldFont.Italic == true) newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Italic); else newFont = new Font(oldFont, oldFont.Style | FontStyle.Italic); rtpText.SelectionFont = newFont; this.rtpText.Focus(); } private void btnUnderline_Click(object sender, EventArgs e) ...{ Font oldFont; Font newFont; oldFont = rtpText.SelectionFont; if (oldFont.Underline == true) newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Underline); else newFont = new Font(oldFont, oldFont.Style | FontStyle.Underline); rtpText.SelectionFont = newFont; this.rtpText.Focus(); } private void btnCenter_Click(object sender, EventArgs e) ...{ if (this.rtpText.SelectionAlignment == HorizontalAlignment.Center) rtpText.SelectionAlignment = HorizontalAlignment.Left; else rtpText.SelectionAlignment = HorizontalAlignment.Center; rtpText.Focus(); } private void btnSave_Click(object sender, EventArgs e) ...{ //string FilePath = Application.StartupPath + @"Test.rtf"; //bool exist = File.Exists(FilePath); //if (exist == false) //{ // Directory.CreateDirectory(Application.StartupPath); // FileStream fs = new FileStream(FilePath, FileMode.Create); // fs.Close(); //} try ...{ rtpText.SaveFile("../../Test.rtf"); } catch (Exception err) ...{ MessageBox.Show(err.Message); } } private void btnLoad_Click(object sender, EventArgs e) ...{ try ...{ rtpText.LoadFile("../../Test.rtf"); } catch (System.IO.FileNotFoundException) ...{ MessageBox.Show("沒找到相關文件"); } } private void btnStart_Click(object sender, EventArgs e) ...{ System.Diagnostics.Process.Start(Application.StartupPath + @"垃圾清理.bat"); } } 運行效果圖: