C#简单文本编辑器的设计代码

  • 格式:doc
  • 大小:45.50 KB
  • 文档页数:4

1 简单文本编辑器

二、添加方法

在class Form1类中定义两个变量:

private string Fname; //存放打开的文件名

private void FileOpen() //打开文件方法

(1)添加“未保存处理”方法

private void NotSaveProcess() //没有保存处理方法

{

if (richTextBox1.Modified) //如果richTextBox1中的文本被修改

{

if (MessageBox.Show("文件未保存,是否保存?", "保存提示", MessageBoxButtons.YesNo) ==

DialogResult.Yes)

{

if (Fname == "")

SaveAs();

else

{

if (FExtName == "txt")

richTextBox1.SaveFile(Fname, RichTextBoxStreamType.PlainText);

else

richTextBox1.SaveFile(Fname, RichTextBoxStreamType.RTFText);

}

}

}

}

(2)添加“新建”文件方法

private void NewFile() //新建文件方法

{

NotSaveProcess();

Fname = "";

FExtName = "txt";

richTextBox1.Text = "";

this.Text = "新建-简单文本编辑器";

richTextBox1.Modified = false;

//lblSave.Text="已保存";

}

(3)添加“打开”文件方法

添加一个richTextBox控件、一个OpenFileDialog控件

private void FileOpen() //打开文件方法

{

openFileDialog1.Filter = "文本文件(*.txt)|*.txt|RTF格式文件(*.RTF)|*.RTF";//设置过滤器属性

2 openFileDialog1.FilterIndex = 1; //设置当前文件过滤器

openFileDialog1.Title = "打开文件"; //设置对话框标题

openFileDialog1.InitialDirectory = Application.StartupPath;//初始目录设为启动路径

openFileDialog1.RestoreDirectory = true; //自动回复初始目录

openFileDialog1.ShowDialog(); //弹出打开文件对话框

Fname = openFileDialog1.FileName;//获取打开的文件名

if (Fname != "")

{

if (openFileDialog1.FilterIndex == 1)//如果是文本文件

richTextBox1.LoadFile(Fname, RichTextBoxStreamType.PlainText);

else

richTextBox1.LoadFile(Fname, RichTextBoxStreamType.RichText);//RTF文件

}

this.Text = Fname + "-简单文本编辑器";//窗体标题栏显示的信息

}

(4)添加“保存”方法

private void Save() //"保存"方法

{

if (richTextBox1.Modified)

{

if (Fname == "")

SaveAs();

else

if (FExtName == "txt")

richTextBox1.SaveFile(Fname, RichTextBoxStreamType.PlainText);

else

richTextBox1.SaveFile(Fname, RichTextBoxStreamType.RichText);

}

richTextBox1.Modified = false;

//lblSave.Text="已保存";

}

(5)添加“另存为”方法

添加一个SaveFileDialog控件(对话框选项卡下),该控件主要作用用来弹出Windows中的“另存为”对话框。“另存为”对话框提供用户选择(或输入)要保存的文件名。

private void SaveAs() //“另存为”方法

{

saveFileDialog1.Filter = "文本文件(*.txt)|*.txt|RTF格式文件|*.RTF";

saveFileDialog1.FilterIndex = 1;

saveFileDialog1.Title = "另存为";

saveFileDialog1.InitialDirectory = Application.StartupPath;//

saveFileDialog1.RestoreDirectory = true;

saveFileDialog1.ShowDialog();

Fname = saveFileDialog1.FileName;

if (Fname!="")

3 {

if (saveFileDialog1.FilterIndex == 1)

{

richTextBox1.SaveFile(Fname, RichTextBoxStreamType.PlainText);

FExtName = "txt";

}

else

{

richTextBox1 .SaveFile ( Fname, RichTextBoxStreamType.RichText);

FExtName ="rtf";

}

this.Text=Fname +"简单文本编辑器";

}

richTextBox1.Modified = false;

//lblSave.Text="已保存";

}

(6)添加“RichTextBoxResize”方法,其作用是文本框控件随窗体大小而改变

添加一个ToolStrip控件(工具栏)、一个StatusStrip控件(状态栏)

private void RichTextBoxResize()

{

richTextBox1.Top = toolStrip1.Height + toolStrip1.Top;

richTextBox1.Left = 0;

richTextBox1.Width = this.ClientSize.Width;

richTextBox1.Height = this.ClientSize.Height - toolStrip1.Height - toolStrip1.Top -

statusStrip1.Height;

}

三、编写事件代码

(一)添加窗体事件

(1)添加Form1.cs的Load事件

private void Form1_Load(object sender, EventArgs e)

{

RichTextBoxResize();

Fname = "";

FExtName = "txt";

this.Text = "新建-简单文本编辑器";

MenuItem2_1.Enabled = false;//撤销菜单不可用

MenuItem2_2.Enabled = false;//重做菜单不可用

MenuItem2_3.Enabled = false;//剪切菜单不可用

MenuItem2_4.Enabled = false;//复制菜单不可用

MenuItem2_5.Enabled = false;//粘贴菜单不可用

MenuItem3_4_1.Checked = true;//选中白色背景

lblCharNum.Text = "字符数:" + Convert.ToString(richTextBox1.TextLength) + " ";

lblSave.Text = "已保存 ";

4 }

简单文本编辑器

第三部分 状态栏设计

a)添加一个状态栏控件statusStrip1,添加3个标签。Name属性值分别为:lblCharNum、lblSave、lblTime;Text属性值分别为:字符数、保存、当前时间。

b)编写richTextBox1的TextChanged事件,代码如下:

private void richTextBox1_TextChanged(object sender, EventArgs e)

{

if (richTextBox1.Modified)

lblSave.Text = "未保存 ";

lblCharNum.Text = "字符数" + Convert.ToString(richTextBox1.TextLength) + " ";

}

注意:本编辑器对使用其它编辑器编写的文件修改后无权按原位置存盘修改。

注:Form1的AutoSize属性值设为False,则窗口的大小正常改变,不随着输入而变。