简易记事本资料.docx
- 文档编号:7855307
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:18
- 大小:300.65KB
简易记事本资料.docx
《简易记事本资料.docx》由会员分享,可在线阅读,更多相关《简易记事本资料.docx(18页珍藏版)》请在冰豆网上搜索。
简易记事本资料
青岛理工大学计算机工程学院
C#程序设计报告
学生姓名:
学号:
班级:
设计题目:
简易记事本
指导教师:
2015年5月29日
摘要
该软件是以系统的记事本为原型,自己编写的一个简易记事本程序,设计思路是根据系统的记事本功能自己模仿着做一遍。
系统自带的基本功能该简易记事本也都有,例如文件的存取打开功能、剪切板功能、工具栏等,麻雀虽小五脏俱全,此次作业对我是一个很大的锻炼,对面向对象的编程有了更深入的了解,总的来说,感觉做的还是挺不错的。
1摘要
1.1设计题目
简易记事本
1.2设计内容
该简易记事本,实现了Windows自带的记事本的部分功能外,并且还可以任意更改字体的字体类型、大小和颜色。
为了方便用户的操作,还在程序的窗体上放置了一个工具栏。
记事本程序具有文件的新建、打开、保存功能;文字的复制、粘贴、删除功能;字体类型、格式的设置功能;查看日期时间等功能,并且用户可以根据需要显示或者隐藏工具栏。
1.3开发工具
MicrosoftVisualStudio2010
1.4应用平台
Windows764位
2详细设计
2.1程序结构
2.2主要功能
功能有:
1.文件的新建、打开、保存、另存为
2.文本框中文字的复制、粘贴、剪切、撤销、全选、显示日期和改变字体
3.工具栏、状态栏的显示和隐藏
4.帮助
2.3程序关键类的实现
YN
N
Y
YN
窗体的属性设置
控件类型
控件名称
属性
设置结果
Form
Form1
Name
frmNotepad
Text
记事本
StartPosition
CenterScreen
Size
600,450
【文件(F)】菜单属性设置
Text属性
Name属性
ShortcutKeys属性
ShowShortcutKeys
属性
文件(&F)
tsmiFile
None
-
新建(&N)
tsmiNew
Ctrl+N
Ture
打开(&O)
tsmiOpen
Ctrl+O
True
保存(&S)
tsmiSave
Ctrl+S
True
另存为(&A)
tsmiSaveAs
None
-
分隔符
退出(&X)
tsmiClose
None
-
【编辑(E)】菜单属性设置
Text属性
Name属性
ShortcutKeys属性
ShowShortcutKeys
属性
编辑(&E)
tsmiEdit
None
-
撤销(&U)
tsmiUndo
Ctrl+Z
Ture
分隔符
复制(&C)
tsmiCopy
Ctrl+C
Ture
剪切(&P)
tsmiCut
Ctrl+X
Ture
粘贴(&T)
tsmiPaste
Ctrl+V
Ture
分隔符
全选(&A)
tsmiSelectAll
Ctrl+A
Ture
日期(&D)
tsmiDate
F5
Ture
【格式(O)】菜单属性设置
Text属性
Name属性
Check属性
格式(&O)
tsmiFormat
False
自动换行(&W)
tsmiAuto
True
字体(&F)
tsmiFont
False
【查看(&V)】菜单属性设置
Text属性
Name属性
Checked属性
查看(&V)
TsmiView
False
工具栏(&T)
tsmiToolStrip
Ture
状态栏(&S)
tsmiStatusStrip
Ture
工具栏属性
Name属性
ToolTipText属性
tsbNew
新建
tsbOpen
打开
tsbSave
保存
ToolStripSeparatorA
说明:
工具栏中按钮之间的分隔符
tsbCopy
复制
tsbCut
剪切
tsbPaste
粘贴
2.4开发日志
初始调试过程中,一开始由于各种控件名字不清楚,并且由于很多名字是XXX_XX_1,XXX_XX_2如此的,导致写代码时各种错乱。
思考一段时间后懂得改控件属性,即更改名字等,思路清晰了许多,代码也易于阅读了。
在该窗体中想要建立一个弹出的窗体点了新建-窗体,错了,应该点项目-添加,而不是直接新建。
3程序调试及运行
3.1程序运行结果
文件-新建:
文件-打开:
文件-另存为:
编辑-字体:
显示(隐藏)工具栏状态栏:
帮助:
3.2程序使用说明
文件-新建:
新建一个记事本
文件-打开:
从磁盘打开已有的记事本
文件-保存:
保存当前记事本在打开位置
文件-另存为:
将当前记事本保存到其他位置
文件-退出:
退出记事本
编辑-撤销:
撤销当前步操作
编辑-复制:
复制选中文字
编辑-剪切:
剪切选中文字
编辑-粘贴:
粘贴已复制或者已剪切的文字
编辑-全选:
全选文本框
编辑-日期:
打印当前时间到文本框上
格式-自动换行:
自动换行
格式-字体:
改变当前选中字体
查看-工具栏:
显示(隐藏)工具栏
查看-状态栏:
显示(隐藏)状态栏
3.3程序开发总结
以前很想将自己学的东西用一些东西实现出来,但是一直没有很好的项目,但是这次实验让我发现通过学习面向对象程序设计,让我明白自己学的东西很有用处,在这次实验开始的时候虽然决定想要编写一个记事本,但是对于各个控件的使用都用的不是很好,也不是很了解,于是经过不断的查找相关资料,将一些经常用的控件的一些属性,及其用法有了很大的提高,经过长达三天的设计以及查找相关资料,终于根据微软记事本,自己也设计出来了一个和微软记事本功能近的记事本,当看到程序能达到自己预期效果的时候,心中不由生出一种难以言明的激动,也许这就是自信的开始吧,我相信在我的努力下一定能把面向对象程序设计学好的。
4附件(源程序)
记事本:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace简易记事本
{
publicpartialclassfrmNotepad:
Form
{publicstaticbools=false;//布尔变量s用于判断文件是否被保存,true表示文件已经被保存了,false表示文件未被保存,默认值为ture
publicstaticboolb=true;//布尔变量b用于判断文件是新建的还是从磁盘打开的,true表示文件是从磁盘打开的,false表示文件是新建的,默认值为false
publicfrmNotepad()
{
InitializeComponent();
}
privatevoidrtxNotepad_TextChanged(objectsender,EventArgse)
{
//文本被修改后,设置s为false,表示文件未保存
s=true;
}
//新建
privatevoidtsmiNew_Click_1(objectsender,EventArgse)
{
//判断当前文件是否从磁盘打开,或者新建时文档不为空,并且文件未被保存
if(b==true||rtxtNotepad.Text.Trim()!
="")
{
//若文件未保存
if(s==false)
{
stringresult;
result=MessageBox.Show("文件尚未保存,是否保存","保存文件",MessageBoxButtons.YesNoCancel).ToString();
switch(result)
{
case"Yes":
//若文件是从磁盘打开的
if(b==true)
{
//按文件打开的路径保存文件rtxtNotepad.SaveFile(odlgNotepad.FileName);
}
//若文件不是从磁盘打开的
elseif(sdlgNotepad.ShowDialog()==DialogResult.OK)
{
rtxtNotepad.SaveFile(sdlgNotepad.FileName);
}
s=true;
rtxtNotepad.Text="";
break;
case"No":
b=false;
rtxtNotepad.Text="";
break;
}
}
}
}
//打开
privatevoidtsmiOpen_Click_1(objectsender,EventArgse)
{
if(b==true||rtxtNotepad.Text.Trim()!
="")
{
if(s==false)
{
stringresult;result=MessageBox.Show("文件尚未保存,是否保存","保存文件",MessageBoxButtons.YesNoCancel).ToString();
switch(result)
{
case"Yes":
if(b==true)
{
rtxtNotepad.SaveFile(odlgNotepad.FileName);
}
elseif(sdlgNotepad.ShowDialog()==DialogResult.OK)
{
rtxtNotepad.SaveFile(sdlgNotepad.FileName);
}
s=true;
break;
case"No":
b=false;
rtxtNotepad.Text="";
break;
}
}
}
odlgNotepad.RestoreDirectory=true;
if((odlgNotepad.ShowDialog()==DialogResult.OK)&&odlgNotepad.FileName!
="")
{
rtxtNotepad.LoadFile(odlgNotepad.FileName);
b=true;
}
s=true;
}
//保存
privatevoidtsmiSave_Click_1(objectsender,EventArgse)
{//若文件从磁盘打开并且修改了其内容
if(b==true&&rtxtNotepad.Modified==true)
{
rtxtNotepad.SaveFile(odlgNotepad.FileName);
s=true;
}
elseif(b==false&&rtxtNotepad.Text.Trim()!
=""&&sdlgNotepad.ShowDialog()==DialogResult.OK)
{
rtxtNotepad.SaveFile(sdlgNotepad.FileName);
s=true;
b=true;
odlgNotepad.FileName=sdlgNotepad.FileName;
}
}
//另存为
privatevoidtsmiSaveAs_Click_1(objectsender,EventArgse)
{
if(sdlgNotepad.ShowDialog()==DialogResult.OK)
{
rtxtNotepad.SaveFile(sdlgNotepad.FileName);
s=true;
}
}
//退出
privatevoidtsmiClose_Click_1(objectsender,EventArgse)
{
Application.Exit();
}
//撤销
privatevoidtsmiUndo_Click(objectsender,EventArgse)
{
rtxtNotepad.Undo();
}
//复制
privatevoidtsmiCopy_Click(objectsender,EventArgse)
{
rtxtNotepad.Copy();
}
//剪切
privatevoidtsmiCut_Click(objectsender,EventArgse)
{
rtxtNotepad.Cut();
}
//粘贴
privatevoidtsmiPaste_Click_1(objectsender,EventArgse)
{
rtxtNotepad.Paste();
}
//全选
privatevoidtsmiSelectAll_Click_1(objectsender,EventArgse)
{
rtxtNotepad.SelectAll();
}
//日期
privatevoidtsmiDate_Click_1(objectsender,EventArgse)
{
rtxtNotepad.AppendText(System.DateTime.Now.ToString());
}
//自动换行
privatevoidtsmiAuto_Click_1(objectsender,EventArgse)
{
if(tsmiAuto.Checked==false)
{
tsmiAuto.Checked=true;//选中该菜单项
rtxtNotepad.WordWrap=true;//设置为自动换行
}
else
{
tsmiAuto.Checked=false;
rtxtNotepad.WordWrap=false;
}
}
//字体
privatevoidtsmiFont_Click_1(objectsender,EventArgse)
{
fdlgNotepad.ShowColor=true;
if(fdlgNotepad.ShowDialog()==DialogResult.OK)
{
rtxtNotepad.SelectionColor=fdlgNotepad.Color;
rtxtNotepad.SelectionFont=fdlgNotepad.Font;
}
}
//工具栏
privatevoidtsmiToolStrip_Click(objectsender,EventArgse)
{
Pointpoint;
if(tsmiToolStrip.Checked==true)
{//隐藏工具栏时,把坐标设为(0,24),因为菜单的高度为24
point=newPoint(0,24);
tsmiToolStrip.Checked=false;
tlsNotepad.Visible=false;//设置多格式文本框左上角位置
rtxtNotepad.Location=point;//隐藏工具栏后,增加文本框高度
rtxtNotepad.Height+=tlsNotepad.Height;}
else
{/*显示工具栏时,多格式文本框左上角位置的位置为(0,49)?
因为工具栏的高度为25,加上菜单的高度24后为49*/
point=newPoint(0,49);
tsmiToolStrip.Checked=true;
tlsNotepad.Visible=true;
rtxtNotepad.Location=point;
rtxtNotepad.Height-=tlsNotepad.Height;
}
}
//状态栏
privatevoidtsmiStatusStrip_Click(objectsender,EventArgse)
{
if(tsmiStatusStrip.Checked==true)
{
tsmiStatusStrip.Checked=false;
stsNotepad.Visible=false;
rtxtNotepad.Height+=stsNotepad.Height;
}
else
{
tsmiStatusStrip.Checked=true;
stsNotepad.Visible=true;
rtxtNotepad.Height-=stsNotepad.Height;
}
}
privatevoidtlsNotepad_ItemClicked_1(objectsender,ToolStripItemClickedEventArgse)
{
intn;//变量n用来接收按下按钮的索引号
n=tlsNotepad.Items.IndexOf(e.ClickedItem);
switch(n)
{
case0:
tsmiNew_Click_1(sender,e);break;//新建
case1:
tsmiOpen_Click_1(sender,e);break;//打开
case2:
tsmiSave_Click_1(sender,e);break;//保存
case4:
tsmiCopy_Click(sender,e);break;//复制
case5:
tsmiCut_Click(sender,e);break;//剪切
case6:
tsmiPaste_Click_1(sender,e);break;//粘贴
}
}
//帮助
privatevoid帮?
助úToolStripMenuItem_Click(objectsender,EventArgse)
{
frmAboutob_FrmAbout=newfrmAbout();
ob_FrmAbout.Show();
}
privatevoidfrmNotepad_Load(objectsender,EventArgse)
{
frmNotepadob_frmNotepad=newfrmNotepad();
tssLbl1.Width=this.Width/2-12;
tssLbl2.Width=tssLbl1.Width;
}
}
}
记事本-帮助:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace简易记事本
{
publicpartialclassfrmAbout:
Form
{
publicfrmAbout()
{
InitializeComponent();
}
privatevoidbtnOK_Click(objectsender,EventArgse)
{
this.Close();
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 记事本 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)