2016-2017学年第一学期《Windows程序设计》课程设计报告题目:写字板的设计专业:班级:姓名:指导教师:成绩:学院二0一六年十一月十五日目录1 问题描述及相关要求 (1)2 总体设计 (1)2.1主要设计思想 (1)2.2功能模块介绍 (2)3 代码实现 (2)3.1界面设计 (2)3.2查找设计 (4)3.3替换设计 (4)3.4 字体大小的设计及字体颜色 (5)3.5 新建文件的设计 (6)3.6 保存文件的设计 (7)3.7 打印设计 (9)3.8 打印预览设计 (9)4调试与测试 (10)5 小结 (12)6 参考文献 (13)1 问题描述及相关要求该写字板是用VS 2008开发的,类似于XP的写字板程序。
拥有XP写字板的大部分功能。
写字板是功能强大的文字处理程序,用户可以利用它进行日常工作中文件的编辑。
它不仅可以进行中英文文档的编辑,而且还可以图文混排,插入图片、声音、视频剪辑等多媒体资料。
实验环境:硬件要求能运行Windows操作系统的微机系统。
软件: Microsoft Visual C# 2008按课程设计指导书提供的课题,设计一个完整的应用程序。
要求根据规定设计的具体要求,按照应用程序的设计步骤和C#的基本知识应用程序的分析与实现。
根据基本学时分配合理安排设计时间,并独立完成各方面的设计。
要求书写详细的设计说明书,对有复杂的代码段和程序段的部分,应画出程序流程图,写出全部的代码。
在界面设计中,需设计每个窗体的布局,并进行属性说明。
2 总体设计2.1主要设计思想本写字板程序是用VS 2008开发完成的,首先是完成菜单的功能,就是添加选项,然后再一一把功能全部实现,其次是完成是完成两个工具栏的功能,最后完成文本输入。
总体目标:用户可以直接进入写字板主界面,通过新建、打开、编辑、保存、查找、替换等功能完成用户要求。
相关目标:1.操作简单方便,界面简洁美观;2.可以通过文件完成新建、打开、保存、另存为、打印和退出等;3.可以通过编辑完成撤销、剪切、复制、粘贴、清除、查找等;4.可以通过格式完成有关字体、符号样式、段落等的功能;5.可以通过查看完成状态栏;6.可以通过插入来完成日期与时间等的插入;7.可以通过帮助完成帮助主题和关于写字板。
2.2功能模块介绍系统由文件、编辑、查看、插入、格式、帮助6个模块组成。
文件:有新建、打开、保存、另存有为、打印、打印预览、页面设置等功能。
编辑:有撤消、剪切、复制、粘贴、清除、全选择等功能。
查看:有工具栏、格式栏、状态栏、选项。
插入:日期和时间、对象。
格式:字体、项目符号样式、段落、跳格键帮助:帮助主题、关于写字板。
3 代码实现3.1界面设计写字板的主界面,能参与文字进行相关编辑,主要是文字的编辑。
字体的大小,颜色都有相应选择。
图3-1写字板主界面//打开文件private void打开OToolStripMenuItem_Click(object sender, EventArgs e){OpenFileDialog of = new OpenFileDialog();of.InitialDirectory = "D:\\";of.Filter = "RTF文件(*.RTF)|*.RTF|文本文件(*.txt)|*.txt|word文档(*.doc)|*.doc|所有文件(*.*)|*.*";of.FilterIndex = 0;if (of.ShowDialog() == DialogResult.OK)richTextBox1.LoadFile(of.FileName);//另存有为文件private void另存为AToolStripMenuItem_Click(object sender, EventArgs e){saveFileDialog1.InitialDirectory = "D:\\";saveFileDialog1.Filter = "RTF文件(*.RTF)|*.RTF|文本文件(*.txt)|*.txt|word文档(*.doc)|*.doc|所有文件(*.*)|*.*";saveFileDialog1.FilterIndex = 0;if (saveFileDialog1.ShowDialog() == DialogResult.OK)richTextBox1.SaveFile(saveFileDialog1.FileName);3.2查找设计查找,输入相关文字,对于用户想查找的某个字符是很有用的,不必用户自己去找。
图3-2查找界面//查找private查找 f2;private替换 f3;private void查找ToolStripMenuItem_Click(object sender, EventArgs e){if (f2 == null || f2.IsDisposed){f2 = new查找();f2.mainform = this;if (f3 != null){f3.Close();}f2.Show();}}3.3替换设计如果用户输入的字符有一个错的话,还不难解决,如果有很多同样的错误的话,替换就很有用了。
输入用户想要替换的内容和想要替换后的内容,进行相关操作即可。
图3-3替换界面//替换private void替换EToolStripMenuItem_Click(object sender, EventArgs e){if (f3 == null || f3.IsDisposed){f3 = new替换();f3.mainform = this;if (f2 != null){f2.Close();}f3.Show();}}3.4 字体大小的设计及字体颜色可以根据需要,对字体进行颜色选择,用户可选择自己想要的颜色。
如图 3-4所示:图 3-4颜色定义界面//字体大小private void Form1_Load(object sender, EventArgs e){int[] fontsizearr = new int[] { 8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72 };foreach (FontFamily allfonts in System.Drawing.FontFamily.Families)toolStripComboBox1.Items.Add();foreach (int fontsize in fontsizearr)toolStripComboBox2.Items.Add(fontsize.ToString());3.5 新建文件的设计新建文档,能新建RTF文档、文本文档、Unicode 文本文档,用户自行选择文本类型进行文档的新建。
图3-5 新建界面//新建文件private新建 f4;private void新建NToolStripMenuItem_Click(object sender, EventArgs e){if (f4 == null || f4.IsDisposed){f4 = new新建();f4.mainform = this;if (f3 != null){f3.Close();}f4.Show();}}3.6 保存文件的设计文档完成后进行文件的保存//保存文件saveFileDialog1.InitialDirectory = "d:\\";saveFileDialog1.Filter = "Word 文档|*.doc|RTF 文档|*.rtf|文本文件|*.txt|全部文档|*.*";saveFileDialog1.FilterIndex = 2;if (saveFileDialog1.ShowDialog() == DialogResult.OK){try{richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);}catch (Exception a){richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);}finally{//保存打开文件路径fileName = saveFileDialog1.FileName;//设置为已保存saved = true;}}}private void保存SToolStripMenuItem_Click(object sender, EventArgs e){if (fileName != string.Empty){try{richTextBox1.SaveFile(fileName, RichTextBoxStreamType.RichText);}catch (Exception a){richTextBox1.SaveFile(fileName, RichTextBoxStreamType.PlainText); }finally{saved = true;}}else{save();}}3.7 打印设计关于打印代码的设计,用户可自行选择打印,份数等。
图3-7 打印界面//打印private void打印PToolStripMenuItem_Click(object sender, EventArgs e){PrintDialog printDialog = new PrintDialog();printDialog.Document = printDocument1;if (printDialog.ShowDialog() != DialogResult.Cancel){try{printDocument1.Print();}catch (Exception ex){MessageBox.Show(ex.Message);}}}3.8 打印预览设计打印预览,用户能查看打印的效果,如果有问题,不至于打印出来才发现。
图3-8打印预览界面//打印预览private void打印预览VToolStripMenuItem_Click(object sender, EventArgs e){try{PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();printPreviewDialog1.Document = printDocument1;printPreviewDialog1.FormBorderStyle = FormBorderStyle.Fixed3D;printPreviewDialog1.ShowDialog();}catch (Exception excep){MessageBox.Show(excep.Message, "打印错误了", MessageBoxButtons.OK, MessageBoxIcon.Error);return;}}4调试与测试在程序运行出现的错误,一般首先代码,看看是否有语法错误,或者采用断点的方式去检查。