[ 简单文本编辑器 ]
一、项目内容及要求
要求: 1)
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
和实现“文件”菜单(提供“新建”、“打开”、“保存”、
“另存为”、“退出”功能)
2)设计和实现“编辑”菜单(提供“撤销”、“恢复”、“剪切”、
“复制”、“粘贴”功能)
3)对窗体中的文本内容提供“格式”菜单。
界面如下图所示:
文件操作:包括文件的新建、打开、保存、另存为及退出。
编辑功能:包括撤销、还原、全选、剪切、复制、粘贴。
字体设置:包含字体、字体颜色及大小的设置
二、算法分析
(描述清楚程序流程,可用自然语言说明,也可用流程图等说明。 )
一 . 界面设计
1. 新建 Windows窗体应用程序。向其中添加 RichTextBox 控件、MenuStrip 控件、
openFileDialog 控件、 saveFileDialog1 、 fontDialog 、colorDialog 。
2. 添加菜单:
a. 文件(新建、打开、保存、另存为、退出)。
b. 编辑(撤销、还原、剪切、复制、粘贴、全选)。
c. 格式(字体、颜色)
二 . 代码编写
1. 定义窗体全局变量并设置初始值
fname = ""; // 文件名
issave = false; // 文档是否保存过
tchange = false; // 文档是否修改过。
2. 双击新建菜单,输入新建事件代码:
a. 如果当前文档没有保存,则保存当前文档;
b. 清空 richTextBox1;
c. 设置 issave 、tchange 、fname 值。
3. 输入打开事件代码:
a. 设置 openFileDialog 控件 Title 、FileName、Filter 的初始值。
b. 使用 openFileDialog1.ShowDialog() 方法打开“打开文件”对话框。
c. 将 openFileDialog 控件的文件名存入 fname。
d. 使用 richTextBox1.LoadFile 方法打开文件。
e. 设置 issave 、tchange 的值。
4. 输入保存事件代码:
a. 如果 fname不为空,则使用 richTextBox.SaveFile 方法保存文件,设置
issave 值。否则:设置 saveFileDialog 控件 Title 、Filter 值。
b. 使用 saveFileDialog1.ShowDialog() 方法打开“保存文件” 对话框,输入
要保存的文件名。
c. 使用 richTextBox.SaveFile 方法保存文件,设置 issave 值。
5. 输入另存为事件代码:
a. 设置 saveFileDialog 控件 Title 、Filter 值。
b. 使用 saveFileDialog1.ShowDialog() 方法打开“保存文件” 对话框,输入
要保存的文件名。
c. 使用 richTextBox.SaveFile 方法保存文件,设置 issave 值。
6. 输入退出事件代码:
Application.Exit 方法
7. 输入文本框的 TextChanged事件代码:
设置 tchange = true;issave = false;
8. 撤销、还原、剪切、复制、粘贴代码
richTextBox1.Undo 、Redo、Cut、Undo、Copy、Paste 、SelectAll 方法。
9. 输入字体事件代码:
a. 使用 fontDialog1.ShowDialog;
b. 设置 richTextBox1.SelectionFont 属性为所选择的字体。
10. 输入颜色事件代码:
a. 使用 colorDialog 的 ShowDialog() 方法 ;
b. 设置 richTextBox1.SelectionColor 为所选择的颜色 ;
三、界面及运行过程
四、关键代码
(代码要求注释完整,例如:变量的作用,语句的作用,方法的功能等都要
加注释说明)
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;
using System.IO;
namespace 项目 2
{
publicpartialclass Form1 : Form
{
string fname = "" ; // 文件名
bool issave = false ; // 文档是否保存过
bool tchange = false ; // 文档是否修改过
public Form1()
{
InitializeComponent();
}
privatevoid 新建 ToolStripMenuItem_Click( object sender, EventArgs e)
{
if ( this .richTextBox1.TextLength > 0 && (issave.Equals( false )))
{
if (MessageBox.Show( " 文件没有保存 是否保存文件? " , " 提示 " , MessageBoxButtons.YesNo,
MessageBoxIcon.Warning) == DialogResult.Yes)
{
if (fname == "" )
{
saveFileDialog1.Title = "保存 " ;
saveFileDialog1.Filter = " 文本文件 (*.txt)|(*.txt)| 所有文件
(*.*)|(*.*)" ;
if ( this .saveFileDialog1.ShowDialog() == DialogResult.OK)
{
this .fname = this .saveFileDialog1.FileName;
this .richTextBox1.SaveFile(fname, RichTextBoxStreamType.PlainText);
}
}
issave = true ;
this .richTextBox1.Clear();
tchange = false ;
}
}
else
{
this .richTextBox1.Clear();
issave = false ;
fname = " 文档 1" ;
tchange = false ;
}
}
privatevoid 打开 ToolStripMenuItem_Click( object sender, EventArgs e)
{
openFileDialog1.Title= " 打开 " ;
openFileDialog1.FileName = "" ;
if ( this .openFileDialog1.ShowDialog() == DialogResult.OK)
{
// 得到用户选择的文件名
fname = this .openFileDialog1.FileName;
// 读取文件内容
this .richTextBox1.LoadFile(fname, RichTextBoxStreamType.PlainText);
issave = false ; // 文档是否保存过
tchange = false ;
}
}
privatevoid 保存 ToolStripMenuItem1_Click( object sender, EventArgs e)
{
if (fname== "" )
{
saveFileDialog1.Title = "保存 " ;
saveFileDialog1.Filter = " 文本文件 (*.txt)|*.txt| 所有文件 (*.*)|*.*" ;
if ( this .saveFileDialog1.ShowDialog() == DialogResult.OK)
{
this .fname = this .saveFileDialog1.FileName;
this .richTextBox1.SaveFile(fname, RichTextBoxStreamType.PlainText);
}
}
else
{
this .richTextBox1.SaveFile(fname, RichTextBoxStreamType.PlainText);
issave = true ;
}
}
privatevoid 另存为 ToolStripMenuItem_Click( object sender, EventArgs e)
{
saveFileDialog1.Title = "另存为 " ;
saveFileDialog1.Filter = "文本文件 (*.txt)|*.txt| 所有文件 (*.*)|*.*" ;
if ( this .saveFileDialog1.ShowDialog() == DialogResult.OK)
{
this .fname = this .saveFileDialog1.FileName;
this .richTextBox1.SaveFile(fname, RichTextBoxStreamType.PlainText);
issave = true ;
}
}
privatevoid 撤销 ToolStripMenuItem_Click( object sender, EventArgs e)
{
this .richTextBox1.Undo();
}
privatevoid 还原 ToolStripMenuItem_Click( object sender, EventArgs e)
{
this .richTextBox1.Redo();
}
privatevoid 剪切 ToolStripMenuItem_Click( object sender, EventArgs e)
{
if (richTextBox1.SelectionLength > 0)
{
this .richTextBox1.Cut();
}
}
privatevoid 复制 ToolStripMenuItem_Click( object sender, EventArgs e)
{
if (richTextBox1.SelectionLength > 0)
{
this .richTextBox1.Copy();
}
}
privatevoid 粘贴 ToolStripMenuItem_Click( object sender, EventArgs e)
{
this .richTextBox1.Paste();
}
privatevoid 全选 ToolStripMenuItem_Click( object sender, EventArgs e)
{
this .richTextBox1.SelectAll();
}
privatevoid 字体 ToolStripMenuItem_Click( object sender, EventArgs e)
{
if ( this .fontDialog1.ShowDialog() == DialogResult.OK)
{
Font font = this .fontDialog1.Font;
richTextBox1.SelectionFont = font;
}
}
privatevoid 颜色 ToolStripMenuItem_Click( object sender, EventArgs e)
{
if ( this .colorDialog1.ShowDialog() == DialogResult.OK)
{
Color color = this .colorDialog1.Color;
this .richTextBox1.SelectionColor = color;
}
}
privatevoid Form1_Load( object sender, EventArgs e)
{
}
privatevoid richTextBox1_TextChanged( object sender, EventArgs e)
{
tchange = true ;
issave = false ;
}
privatevoid openFileDialog1_FileOk( object sender, CancelEventArgs e)
{
}
privatevoid saveFileDialog1_FileOk( object sender, CancelEventArgs e)
{
}
privatevoid fontDialog1_Apply( object sender, EventArgs e)
{
}
privatevoid 退出 ToolStripMenuItem_Click( object sender, EventArgs e)
{
Application.Exit();
}
}
}