C#记事本设计文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 记事本设计
1.1 记事本开发目标
1.文件操作功能。新建文件,打开文件,保存文件,页面设置,打印和退出。
2.文本编辑功能。文本的撤销,文本重复,剪切,复制,粘贴,删除,查找,
替换,转到,全选和时间/日期。
3.文本格式编辑。文本自动换行,字体选择,颜色选择,文本居中,左对齐,
右对齐,加粗,倾斜和下划线。
4.实现与windows 记事本兼容使用。即用本记事本可以正常打开windows
记事本。
5.进度条根据文本框改变而变化、显示系统时间。
1.2 记事本界面预览
1.3记事本功能结构
1.4 流程图
记事本流程图如下所示:
1.5 程序运行环境
记事本开发平台:Microsoft visual studio 2005。
记事本开发语言:C#。
运行平台:windows 2000 \ windows XP \ windows Vista 等。
2记事本窗体设计与功能分析
2.1 主窗体(Form1)设计
2.1.1使用组件介绍
编辑框richTextBox1,菜单menuStrip1,工具条toolStrip1,
右击contextMenuStrip1,系统计时器timer1,
进度条toolStripProgressBar1,显示条toolStripStatusLabel1.
2.2.2 本记事本的突出特点
本记事本的特点:(1)实现对文本内容格式的编辑,如左对齐、右对齐、居中;
对字体的颜色、字体、加粗、倾斜和下划线操作。
(2)实现正确地与windows记事本兼容使用,无乱码出现。
(3)实现对文本的打印与页面设置。
2.2 文件操作设计
2.2.1 新建
菜单新建、按钮新建以及利用组件C ontextMenuStrip1,完成右击菜单新建。代码如下:
private void新建NToolStripButton_Click(object sender, EventArgs e)
{
this.richTextBox1.Clear();
}
2.2.2 打开与保存
【打开】
为了实现与windows记事本兼容打开,利用RichTextBoxStreamType 枚举的PlainText成员,作用是用空格代替对象链接与嵌入 (OLE) 对象的纯文本流。
代码实现如下:
private void打开OToolStripButton_Click(object sender, EventArgs e)
{ OpenFileDialog fileone = new OpenFileDialog();
fileone.Filter = "文本文件(*.txt)|*.txt|RTF文件(*.rtf)|*.rtf|所有文件(*.*)|*.*"; fileone.FilterIndex = 1;
if (fileone.ShowDialog() == DialogResult.OK)
{
try
{ filename = fileone.FileName;//用于保存时显示需要保存的文件名
this.richTextBox1.LoadFile(fileone.FileName,RichTextBoxStreamType.PlainText); }
catch (Exception)
{
MessageBox.Show("Oh,您的打开不成功!");
}
}
}
【保存】
为了让C#记事本的文本保存后,用windows记事本打开,在richTextBox的SaveFile 中使用利用RichTextBoxStreamType枚举的TextTextOleObjs成员,即具有 OLE 对象的文本表示形式的纯文本流。
代码如下:
string filename;
private void保存SToolStripButton_Click(object sender, EventArgs e)
{
SaveFileDialog fileone = new SaveFileDialog();
fileone.Filter = "文本文件(*.txt)|*.txt|RTF文件(*.rtf)|*.rtf|所有文件(*.*)|*.*"; fileone.FilterIndex = 1;
fileone.FileName = filename;//保存时自动显示需要保存的文件名
if (fileone.ShowDialog() == DialogResult.OK)
{
try
{
this.richTextBox1.SaveFile(fileone.FileName,
RichTextBoxStreamType.TextTextOleObjs);
}
catch (ArgumentException)
{
MessageBox.Show("Oh,您的保存不成功!");
}
}
}
2.2.3 打印与页面设计的代码详细于软件包中。
2.2.4 窗体按钮“退出”与菜单“退出”
【窗体按钮“退出”】
打开主窗体的加载事件Load ,首先判断文本框是否为空,为空则直接关闭窗体,否则先保存再退出。
代码如下:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{ //判断文本是否为空,为空则不处理
if (this.richTextBox1.Text == string.Empty)
{ return;}
//判断文本是否为空,不为空则弹出提示框
else
{//创建一个退出提示对话框,并获得用户的选择。
DialogResult dr = MessageBox.Show("您的文本内容已改变,退出程序文本内容将丢失,
是否要保存?", "退出提示", MessageBoxButtons.YesNoCancel);
//如果用户的选择为yes,那么先保存后关闭窗体。
if (dr == DialogResult.Yes)
{
保存SToolStripMenuItem_Click(sender, e);
e.Cancel = false;
}
if (dr == DialogResult.No)
{ e.Cancel = false;}
if (dr == DialogResult.Cancel)
{ e.Cancel = true;}
}
}
【菜单“退出”】
利用Close()方法,让执行Close()方法后关联到窗体按钮“退出”。
private void退出XToolStripMenuItem_Click(object sender, EventArgs e)
{ //关闭程序
Close();
}