C多文本编辑器考试 .docx
《C多文本编辑器考试 .docx》由会员分享,可在线阅读,更多相关《C多文本编辑器考试 .docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结XX 高校C#.NET课程考试设计题目多文本编辑器的设计起止日期2021-2021 学年第 1学期课程名称C#.NET 语言程序设计院系运算机系班级人员组成及各自工作说明 :学号姓名主要工作说明成果整个程序的设计及完成设计成员及各自的工作说明设计内容综合运用 Visual C#.NET 供应的标准控件,仿照Windows中的记事本和写字板的功能,自己设计一个多文档编辑工具。工程/ 成果优良中及格不及格评系统分析设计 程序设计水平语内容完成情形 与设计报告撰写质量 课程设计总结情形成附加说明:绩综合成果 : 指导老师年月日1 / 13可编辑资料 - - - 欢迎下载精品名师归纳总
2、结一、题目:多文本编辑器的设计二、设计要求:用C# 的可视化环境通过制作一个RichTextBox这样一个文本编辑器,熟识在可视化环境下编程,并且学会使用里面供应的一些组装好的一些工具,三、设计思路及代码:第一是:新建一个 RichTextBox ,然后我最先想到的就是漫游里的选项卡特殊好用而且人性化,怎么制作这样一个选项卡, 怎么把 RichTextBox放到里面, 我就明白了 TabControl工具并且最先想到的是用 RichTextBox数组,每个选项卡支配一个RichTextBoxi,但是当关闭选项卡时就遇到问题了,不 知道选项卡最终对应的是哪一个RichTextBoxi,然后就想出
3、了把 RichTextBox 封装在选项卡里的想法,为了记录文件路径和文件是不是已经储存的状态,我顺便封装两个Label进去,由于要用到他们的text属性记录这些信息,我们只对当前选项卡操作,第一用foreach语句猎取选项卡里的控件类型,再进行相应操作。这样最终解决了窗口关闭问题,以及新建窗口个数有限性的问题,我的这个程序理论上是可以新建很多多个窗口的,就看你内存如何了。代码如下:(文件打开的功能也差不多)private void新建 ToolStripMenuItem_Clickobject sender, EventArgs estring str = NewText + NF+。/猎取
4、选项卡名字tabControl1.TabPages.Addstr 。/增加选项卡tabControl1.SelectTabm+ 。/当前页转到下一页tabControl1.TabStop = true 。/ 答应tab键次序RichTextBoxr= new RichTextBox 。r.ContextMenuStrip = contextMenuStrip2。/增加右键菜单r.TextChanged += new EventHandlerForm1_TextChanged。/文本内容发生转变时执行的函数r.Dock = System.Windows.Forms.DockStyle.Fill。
5、r.Location = new System.Drawing.Point0, 0。Label l1 = new Label 。l1.Text = str 。/ 储存路径Label l2 = new Label 。l2.Text = 新建 。 v+ 。/储存文件是不是储存的状态l1.Dock = System.Windows.Forms.DockStyle.Bottom。l2.Dock = System.Windows.Forms.DockStyle.Bottom。tabControl1.SelectedTab.Controls.Addr 。tabControl1.SelectedTab.Co
6、ntrols.Addl1。tabControl1.SelectedTab.Controls.Addl2。/ 封装进去,留意句柄丢了,这样做到与选项卡一一对应。其次是:当 RichTextBox的文本转变时,要转变文本是否储存的状态,这要给RichTextBox添加一个 TextChanged处理函数 Form1_TextChangedobject sender, EventArgs e:可编辑资料 - - - 欢迎下载精品名师归纳总结void Form1_TextChangedobject sender, EventArgs e /获得控件 r 、l1 、l2 (第十设计思路)if l2.Te
7、xt = 已储存 | l2.Text = 打开 true。toolStripButton3.Enabled = true 。保 存 SToolStripMenuItem.Enabled=可编辑资料 - - - 欢迎下载精品名师归纳总结l2.Text = 未储存 。 v+ 。2 / 13else if l2.Text = 打开 1可编辑资料 - - - 欢迎下载精品名师归纳总结false。l2.Text = 打开 。toolStripButton3.Enabled = false 。保存SToolStripMenuItem.Enabled=可编辑资料 - - - 欢迎下载精品名师归纳总结true
8、。elsetoolStripButton3.Enabled = true。保 存 SToolStripMenuItem.Enabled=可编辑资料 - - - 欢迎下载精品名师归纳总结3 / 13可编辑资料 - - - 欢迎下载精品名师归纳总结第三是:当选项卡相互切换时,也有一些事情要处理的,比如说在一个选项卡里未储存文本,储存按钮需要保持可用状态,但是当切换到另一个选项卡时可能它是已经储存的,储存按钮连续保持不行用状态, 这需要一些判定和处理,当然仍有其他一些操作:private void targetobject sender, EventArgs e/ 窗口切换 / 获得选项卡里的控件,
9、 r 为RichTextBox , l1为路径栏, l2为储存提示栏if l2 .= nullif l2.Text = 已储存 | l2.Text = 打开 可编辑资料 - - - 欢迎下载精品名师归纳总结else储存 SToolStripMenuItem.Enabled = false 。toolStripButton3.Enabled = false 。储存 SToolStripMenuItem.Enabled = true 。toolStripButton3.Enabled = true 。可编辑资料 - - - 欢迎下载精品名师归纳总结if fc 0查找下一个 NToolStripMe
10、nuItem.Enabled = true。else 查找下一个 NToolStripMenuItem.Enabled = false。if r.CanUndo撤消ToolStripMenuItem.Enabled = true 。else 撤消ToolStripMenuItem.Enabled = false 。ifl1.=null&l2.=nullif 隐匿路径 ToolStripMenuItem.Checked = true l1.Hide。else l1.Show 。if 隐匿储存提示栏 ToolStripMenuItem.Checked = true l2.Hide。else l2.
11、Show 。第四是:当选项卡关闭时也有一些处理,比如说文本没有储存的话要给用户一个储存修改的机会,要实现像漫游那样双击可以关闭,我设置了双击函数,并且选项卡的右键菜单的关闭选项的处理也直接使用这个双击函数,主要实现关闭选项卡的功能,但是为了使用户操作,我至少要有一个选项卡留在窗口不能关闭,所以最终一个选项卡不能关闭的:void tabControl1_DoubleClickobject sender, EventArgs e / 获得选项卡里的控件, r 为RichTextBox , l1为路径栏, l2为储存提示栏if m 1/ 当窗口数量m 1 时才执行关闭功能if l2.Text = 已
12、储存 | l2.Text = 打开tabControl1.SelectedTab.Dispose 。m- 。elsestring message, title 。DialogResult result 。/文本需要储存时要给出提示信息对话框message = 窗口正在关闭nn但是文本未被储存! nn是不是执行储存 .。title = 提示你 。button = MessageBoxButtons.YesNoCancel 。icon = MessageBoxIcon.Warning 。4 / 13可编辑资料 - - - 欢迎下载精品名师归纳总结else result = MessageBox.S
13、howmessage, title, button, icon 。if result.ToString = Yes储存 SToolStripMenuItem_Clicksender, e。 tabControl1.SelectedTab.Dispose 。m-。 else if result.ToString = NotabControl1.SelectedTab.Dispose 。m- 。/end else可编辑资料 - - - 欢迎下载精品名师归纳总结/end if m 1第五是:字体的设置,考虑要先获得所选文本的字体,要表达人性化智能化:(颜色的设置也差不多)private void字体
14、 ToolStripMenuItem_Clickobject sender, EventArgs e / 获得选项卡里的控件, r 为RichTextBox , l1为路径栏, l2为储存提示栏f = new FontDialog 。f.ShowColor = true 。f.ShowApply = true 。 /下面添加一个处理函数f.Apply += new EventHandlerf_Apply。f.ScriptsOnly = true 。f.ShowEffects = true 。f.ShowHelp = true 。f.AllowVerticalFonts = true。 f.Co
15、lor = r.SelectionColor 。f.Font = r.SelectionFont 。f.ShowDialog 。r.SelectionFont = f.Font 。r.SelectionColor = f.Color。void f_Applyobject sender, EventArgs e/ 当字体对话框的应用按钮被按下时发生 / 获得选项卡里的控件, r 为RichTextBox , l1为路径栏, l2为储存提示栏r.SelectionFont = f.Font 。r.SelectionColor = f.Color 。 r.Focus。第六是:查找对话框的制作,说了这
16、个其实替换对话框就不要说了:private void findFun1object sender, EventArgs e / 执行向下查找的功能,fs=0 表示没有选择文本,否就选择了文本 / 获得选项卡里的控件, r 为RichTextBox , l1为路径栏, l2为储存提示栏if r.SelectedText.Length = 0 fs = 0。string str1 = find.textBox1.Text。if str1.Length = 0 return 。if fs = 0 start = r.SelectionStart-1。 fs = 1 。 else start = r.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C多文本编辑器考试 文本 编辑器 考试
限制150内