C#记事本设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1). 窗体的属性设置
窗体的属性设置如表1所示。 表1 窗体的属性设置 控件类型 控件名称 属性 Form Form1 Name Text StartPosition Size
设置结果 frmBook 记事本 CenterScreen 600, 450
2). MenuStrip的属性设置
将菜单控件MenuStrip的Name属性设为“mnusBook”,它共有【文 件(F)】、【编辑(E)】、【格式(O)】、【查看(V)】和【帮 助(H)】5个下拉菜单,下面用表格的形式给出各子菜单及其属性的 设置。 【文件(F)】菜单的属性设置如表2所示。 表2 【文件(F)】菜单 Text属 Name属性 ShortcutKeys ShowShortcutKeys 性 属性 属性 文件 tsmiFile None - (&F) 新建 (&N) 打开 (&O) 保存 (&S) 另存为 (&A) 分隔符 退出 (&X) tsmiClose None - tsmiNew tsmiOpen tsmiSave tsmiSaveAs Ctrl+N Ctrl+O Ctrl+S None True True True -
【编辑(E)】菜单的属性设置如表3所示。 表3 【编辑(E)】菜单 Text属 Name属性 ShortcutKeys ShowShortcutKeys 性 属性 属性 编辑 tsmiEdit None - (&E) 撤销 (&U) 分隔符 tsmiUndo Ctrl+Z True
复制 (&C) 剪切 (&T) 粘贴 (&P) 分隔符 全选 (&A) 日期 (&D)
3.2 菜单代码
在本章介绍的记事本程序中,几乎所有的功能都是通过菜单来实 现的,本小节将介绍各菜单项的单击事件代码,
1. 【文件(F)】菜单
【文件(F)】菜单的功能是完成文件的新建、打开、保存、另存 为功能,以及退出记事本程序,下面对各个菜单项的源代码进行详细 的说明。 (1) 【新建(N)】菜单项 单击该菜单项时新建一个空白文档,首先应该判断文件是从磁盘 打开的还是新建的,若从磁盘打开则将前面定义的变量(b)设 为“true”,否则设为“false”。这样做可以根据这个变量对文件进 行相应的操作。并且每次保存文件后,都要将前面定义的变量(s)设 为“true”,表示文件已经被保存。 单击新建菜单时,如果当前文件是从磁盘打开的,并且已经过修 改,则要按OpenFileDialog控件的路径来保存文件。 如果是新建的文件且内容不为空,则需要用SaveFileDialog控件 来保存文件,【新建(N)】菜单项的代码如下: //*********************************************************************** // 【新建】菜单代码 //*********************************************************************** private void tsmiNew_Click(object sender, EventArgs e)
{ // 文本被修改后,设置s为false,表示文件未保存 s = false;
} //*********************************************************************** //***********************************************************************
1 记事本简介
记事本是一种常用的软件,在微软的Windows中,自带了一个记事 本软件,Windows XP下的记事本软件如图1所示。
图1
Windows自带的记事本
2 界面设计及属性设置
新建一个Windows应用程序,并命名为“记事本”。本节介绍记事 本程序的界面设计以及界面上各控件的属性设置。
2.1 界面设计
3.1 多格式文本框代码
当多格式文本框中的文本发生改变后,应当设置布尔变量“s”的 值为false,表示文件未保存,因此编写多格式文本框的TextChanged 事件代码如下: //*********************************************************************** // 多格式文本框的TextChanged事件代码 //*********************************************************************** private void rtxtBook_TextChanged(object sender, EventArgs e)
s = true; b = true; openFileDialog.FileName = saveFileDialog.FileName; }
} //*********************************************************************** //*********************************************************************** (4) 【另存为(A)】菜单项 将文件另存为后,要将前面定义的变量(s)设为“true”,表示 文件已经被保存。本菜单项的代码如下: (5) 【退出(X)】菜单项 本菜单项的功能是退出记事本程序,代码如下: //*********************************************************************** // 【退出】菜单代码 //*********************************************************************** private void tsmiClose_Click(object sender, EventArgs e) { Application.Exit(); } //*********************************************************************** //***********************************************************************
//*********************************************************************** //*********************************************************************** (2) 【打开(O)】菜单项 单击该菜单项时,如果是要从磁盘或其他设备打开“*.txt”文 件,同样要作出判断,所不同的是判断后用OpenFileDialog控件打开 文件,并且每次保存文件后,都要将前面定义的变量(s)设 为“true”,表示文件已经被保存。 //*********************************************************************** //*********************************************************************** (3) 【保存(S)】菜单项 单击此菜单项保存文本框的内容,需要判断该文件是从磁盘打开 还是新建的,如果是从磁盘打开的,则要判断是否有更改,只有有更 改时才进行保存操作,否则不作任何处理。如果是新建的文档就调用 SaveFileDialog控件保存文件,然后把bool变量b改为“true”,同 时把SaveFileDialog控件的文件路径赋给OpenFileDialog控件,这样 下次打开文件时,文件路径默认为刚刚保存文件的路径,并且每次保 存文件后,都要将前面定义的变量(s)设为“true”,表示文件已经 被保存。代码如下: //*********************************************************************** // 【保存】菜单代码 //*********************************************************************** private void tsmiSave_Click(object sender, EventArgs e) { // 若文件从磁盘打开并且修改了其内容 if (b == true && rtxtBook.Modified == true) { SaveFile(openFileDialog.FileName); s = true; } else if (b == false && rtxtBook.Text.Trim() != "" && saveFileDialog.ShowDialog() == DialogResult.OK) { SaveFile(saveFileDialog.FileName);
tsmiCopy tsmiCut tsmiPaste
Ctrl+C Ctrl+X Ctrl+V
True True True
tsmiSelectAll Ctrl+A tsmiDate F5
True True
3). RichTextBox的属性设置
添加一个RichTextBox控件,将控件的大小调整接近窗体的边缘, 并将其Name属性设为“rtxtBook”,Anchor属性选择“Top, Bottom,Left,Right”,这样当窗体大小改变时,RichTextBox控件 的大小也会跟着改变,如图4所示。
{ // 判断当前文件是否从磁盘打开,或者新建时文档不为空,并且文件 未被保存 if (b == true || rtxtBook.Text.Trim() != "") { // 若文件未保存 if (s == false) { string result; result = MessageBox.Show("文件尚未保存,是否保存?", "保存文件", MessageBoxButtons.YesNoCancel).ToString(); switch (result) { case "Yes": // 若文件是从磁盘打开的 if (b == true) { // 按文件打开的路径保存文件,SaveFile方法要自己补充 SaveFile(openFileDialog.FileName); } // 若文件不是从磁盘打开的 else if (saveFileDialog.ShowDialog() == DialogResult.OK) { SaveFile(saveFileDialog.FileName); } s = true; rtxtBook.Text = ""; break; case "No": b = false; rtxtBook.Text = ""; break; } } } }
3 编写代码
首先在代码的通用段声明以下两个公共变量,他们都是布尔型 的,“b”用于判断文件是新建的还是从磁盘打开的,“s”用于判断 文件是否被保存。 //*********************************************************************** /* 布尔变量b用于判断文件是新建的还是从磁盘打开的, true表示文件是从磁盘打开的,false表示文件是新建的,默认值为 false*/ bool b = false; /* 布尔变量s用于判断文件件是否被保存, true表示文件是已经被保存了,false表示文件未被保存,默认值为 true*/ bool s = true; //***********************************************************************
打开记事本程序的窗体设计器,依次在窗体上放置以下控件: (1)MenuStrip(菜单控件)。 (2)RichTextBox(多格式文本框控件)。 最终的用户界面如图2所示(设置好属性后),其中MenuStrip控 件显示窗体在设计器下方的组件板上。
2.2 属性设置
本小节将窗体、菜单控件、多格式文本框控件和状态栏控件的属 性设置,首先介绍的是窗体的属性设置。
图4
Anchor属性
4). Βιβλιοθήκη BaidupenFileDialog的属性设置
当用户单击记事本的【文件】→【打开】菜单项时,使用打开对 话框OpenFileDialog打开文件。OpenFileDialog控件的Name属性 为“openFileDialog”,Filter属性设为“txt文件|*.txt|所有文 件|*.*”。
5). SaveFileDialog的属性设置
当用户单击记事本的【文件】→【保存】(或【另存为】)菜单 项时,使用保存对话框SaveFileDialog保存文件。SaveFileDialog控 件的Name属性为“saveFileDialog”,FileName属性改为“无标 题”,Filter属性设为“txt文件|*.txt”。