功能:1、实现文字框的新建;2、打开;3、保存文件;4、字体的设置,包括粗体、斜体、下划线;5、实现快捷键打开菜单栏;6、新西兰显示编辑栏的具体信息。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Menus
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
fontstoolStripComboBox.SelectedIndex = 0;//选择组合框中的初始项
}
private void showHelpMenuToolStripMenuItem_CheckedChanged(object sender, EventArgs e)//单击时,帮助按钮会消失
{
ToolStripMenuItem item = (ToolStripMenuItem)sender;
帮助HToolStripMenuItem.Visible = item.Checked;
}
private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBoxText.Text = "";
}
private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)//打开文件
{
try
{
richTextBoxText.LoadFile(@"Example.rtf");
}
catch { }
}
private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)//保存文件
{
try
{
richTextBoxText.SaveFile(@"Example.rtf");
}
catch { }
}
private void boldtoolStripButton_Click(object sender, EventArgs e)//工具栏中粗体的事件
{
Font oldFont, newFont;
bool checkState = ((ToolStripButton)sender).Checked;
oldFont = this.richTextBoxText.SelectionFont;
if (!checkState)
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Bold);
else
newFont = new Font(oldFont, oldFont.Style | FontStyle.Bold);
richTextBoxText.SelectionFont = newFont;
richTextBoxText.Focus();
粗体BToolStripMenuItem.CheckedChanged -= new EventHandler(粗体BToolStripMenuItem_CheckedChanged);//删除菜单项中时间处理程序
粗体BToolStripMenuItem.Checked = checkState;//设置和工具栏相同的值
粗体BToolStripMenuItem.CheckedChanged += new EventHandler(粗体BToolStripMenuItem_CheckedChanged);//恢复处理程序
toolStripStatusLabelBold.Enabled = checkState;
}
private void italictoolStripButton_Click(object sender, EventArgs e)
{
Font oldFont, newFont;
bool checkState = ((ToolStripButton)sender).Checked;
oldFont = this.richTextBoxText.SelectionFont;
if (!checkState)
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Italic);
else
newFont=new Font(oldFont,oldFont.Style|FontStyle.Italic);
richTextBoxText.SelectionFont=newFont;
richTextBoxText.Focus();
斜体IToolStripMenuItem.CheckedChanged -= new EventHandler(斜体IToolStripMenuItem_CheckedChanged);
斜体IToolStripMenuItem.Checked = checkState;
斜体IToolStripMenuItem.CheckedChanged += new EventHandler(斜体IToolStripMenuItem_CheckedChanged);
toolStripStatusLabelItalic.Enabled = checkState;
}
private void underlinetoolStripButton_Click(object sender, EventArgs e)
{
Font oldFont, newFont;
bool checkState = ((ToolStripButton)sender).Checked;
oldFont = this.richTextBoxText.SelectionFont;
if (!checkState)
newFont = new Font(oldFont, oldFont.Style & ~FontStyle.Underline);
else
newFont = new Font(oldFont, oldFont.Style | FontStyle.Underline);
richTextBoxText.SelectionFont = newFont;
richTextBoxText.Focus();
下划线UToolStripMenuItem.CheckedChanged -= new EventHandler(下划线UToolStripMenuItem_CheckedChanged);
下划线UToolStripMenuItem.Checked = checkState;
下划线UToolStripMenuItem.CheckedChanged += new EventHandler(下划线UToolStripMenuItem_CheckedChanged);
toolStripStatusLabelUnderline.Enabled = checkState;
}
private void fontstoolStripComboBox_SelectedIndexChanged(object sender, EventArgs e)//组合框中字体的事件
{
string text = ((ToolStripComboBox)sender).SelectedItem.ToString();
Font newFont = null;
if(richTextBoxText.SelectionFont==null)
newFont=new Font(text,richTextBoxText.Font.Size);
else
newFont=new Font(text,richTextBoxText.SelectionFont.Size,richTextBoxText.SelectionFont.Style);
richTextBoxText.SelectionFont=newFont;
}
private void 粗体BToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
{
boldtoolStripButton.Checked = 粗体BToolStripMenuItem.Checked;//保持菜单栏、工具栏中的事件选中一致
}
private void 斜体IToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
{
italictoolStripButton.Checked = 斜体IToolStripMenuItem.Checked;
}
private void 下划线UToolStripMenuItem_CheckedChanged(object sender, EventArgs e)
{
underlinetoolStripButton.Checked = 下划线UToolStripMenuItem.Checked;
}
private void richTextBoxText_TextChanged(object sender, EventArgs e)
{
toolStripStatusLabelText.Text = "Number of characters:" + richTextBoxText.Text.Length;
}
}
}