C课程设计报告简单记事本的设计.docx
- 文档编号:11568661
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:20
- 大小:180.51KB
C课程设计报告简单记事本的设计.docx
《C课程设计报告简单记事本的设计.docx》由会员分享,可在线阅读,更多相关《C课程设计报告简单记事本的设计.docx(20页珍藏版)》请在冰豆网上搜索。
C课程设计报告简单记事本的设计
《C#语言程序设计》
课程设计报告
题目简单记事本的设计
院、系(部)计算机科学与技术学院
专业及班级计算机网络技术
姓名
日期
1题目要求
使用C#语言设计一个Windows自带记事本,软件界面美观大方,操作简洁易用,功能完备可靠,必须上机调试通过。
程序中应有不少于100~300行的自行编写的代码,代码需书写详细注释。
2功能需求
实现记事本软件的基本功能,具有文本文件的新建、打开、保存功能,文字的全选、剪切、复制、粘贴、删除、撤销、查找、替换功能,字体类型、格式的设置、显示当前日期与时间的功能,并在此记事本程序基础上增加设置字体颜色,添加状态栏功能。
3总体设计
4详细设计
Program.cs:
代码如下
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Windows.Forms;
namespacenote
{
staticclassProgram
{
///
///应用程序的主入口点。
///
[STAThread]
staticvoidMain()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(newForm1());
}
}
}
Form1.cs代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.IO;
namespacenote
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
}
Form2form2=newForm2();//实例化查找窗体
Form3form3=newForm3();//实例化替换窗体
publicstringfilepath="";//文件路径
//新建记事本
publicvoidnew_Click(objectsender,EventArgse)
{
if(richTextBox1.Modified)//判断输入区是否被修改
{
save_Click(sender,e);
richTextBox1.Text="";//清空输入框
}else
richTextBox1.Text="";
}
//打开文件
publicvoidopen_Click(objectsender,EventArgse)
{
//“打开”对话框,主要用于打开文件
OpenFileDialogopenFileDialog1=newOpenFileDialog();
//设置打开文件格式
openFileDialog1.Filter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if(openFileDialog1.ShowDialog()==DialogResult.OK)
{
//对文件进行读写操作
StreamReadersTmp=newStreamReader(openFileDialog1.FileName,Encoding.Default);
richTextBox1.Text="";
this.Text=openFileDialog1.SafeFileName+"-记事本";
//读取文件内容
richTextBox1.Text=sTmp.ReadToEnd();
}
}
//保存文件
publicvoidsave_Click(objectsender,EventArgse)
{
//另存为对话框,用于将文本保存到指定的位置
SaveFileDialogsaveFileDialog1=newSaveFileDialog();
//定义要打开的文件格式
saveFileDialog1.Filter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
//显示一个"提示框"
if(MessageBox.Show("需要保存文件吗?
","提示框",MessageBoxButtons.YesNo)==DialogResult.Yes)
{
if(saveFileDialog1.ShowDialog()==DialogResult.OK)
{
if(filepath.Length==0)
{
//获取要打开文件的绝对路径
filepath=saveFileDialog1.FileName;
}
StreamWritersTmp=newStreamWriter(filepath);
sTmp.Write(richTextBox1.Text);//输出流
sTmp.Flush();//清除缓存
sTmp.Close();
}
}
}
//另存为
publicvoidsaveWhere_Click(objectsender,EventArgse)
{
save_Click(sender,e);
}
//打印
publicvoidprint_Click(objectsender,EventArgse)
{
//打印对话框,用于选择打印机,打印页数及确定其他与打印机相关的设置
PrintDialogpd=newPrintDialog();
//显示一个模态打印对话框
pd.ShowDialog();
}
//退出
publicvoidexit_Click(objectsender,EventArgse)
{
save_Click(sender,e);
this.Close();
}
//字体
publicvoidfont_Click(objectsender,EventArgse)
{
//字体对话框,用于设置字体
FontDialogfontDialog1=newFontDialog();
if(fontDialog1.ShowDialog()==DialogResult.OK)
{
richTextBox1.Font=fontDialog1.Font;
}
}
//打印设置
publicvoidset_Click(objectsender,EventArgse)
{
PrintDialogpd=newPrintDialog();
pd.ShowDialog();
}
//撤消
publicvoidreturn_Click(objectsender,EventArgse)
{
//撤消最新的撤消命令。
换句话说,撤消位于撤消堆栈上的最新撤消单元
richTextBox1.Undo();
}
publicvoid剪切XToolStripMenuItem_Click(objectsender,EventArgse)
{
//从文本编辑控件中删除当前选定内容,并将其复制到Clipboard
richTextBox1.Cut();
}
publicvoid全选AToolStripMenuItem_Click(objectsender,EventArgse)
{
//选择文本编辑控件的全部内容。
richTextBox1.SelectAll();
}
publicvoid复制VToolStripMenuItem_Click(objectsender,EventArgse)
{
//将文本控件的当前选定内容复制到Clipboard。
richTextBox1.Copy();
}
publicvoid粘贴ToolStripMenuItem_Click(objectsender,EventArgse)
{
//将剪贴板的内容粘贴到文本编辑控件中的当前选定内容上。
richTextBox1.Paste();
}
publicvoid删除DToolStripMenuItem_Click(objectsender,EventArgse)
{
//清除属性的本地值。
richTextBox1.Clear();
}
publicvoid关于记事本AToolStripMenuItem_Click(objectsender,EventArgse)
{
AboutBox1ab=newAboutBox1();
ab.ShowDialog();
}
publicvoid查找FToolStripMenuItem_Click(objectsender,EventArgse)
{
form2.rtb=richTextBox1;
form2.ShowDialog(this);
}
publicvoid替换RToolStripMenuItem_Click(objectsender,EventArgse)
{
form3.rtb=richTextBox1;
form3.ShowDialog(this);
}
publicvoid时间ToolStripMenuItem_Click(objectsender,EventArgse)
{
//获取系统当前时间
DateTimetime=DateTime.Now;
//格式化日期
stringdat=string.Format("{0:
yyyy-MM-ddHH:
mm:
ssdddd}",time);
richTextBox1.AppendText(dat);
}
privatevoid查找下一个ToolStripMenuItem_Click(objectsender,EventArgse)
{
form2.button1_Click(sender,e);
}
//对“自动换行”进行选定和取消
privatevoid自动换行WToolStripMenuItem_Click(objectsender,EventArgse)
{
if(自动换行WToolStripMenuItem.Checked)
{
richTextBox1.WordWrap=false;
自动换行WToolStripMenuItem.Checked=false;
}
else
{
自动换行WToolStripMenuItem.Checked=true;
richTextBox1.WordWrap=true;
}
}
//对“状态栏”进行选定和取消
privatevoid状态栏ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(状态栏ToolStripMenuItem.Checked)
{
statusStrip1.Visible=false;
状态栏ToolStripMenuItem.Checked=false;
}
else
{
状态栏ToolStripMenuItem.Checked=true;
statusStrip1.Visible=true;
}
}
//对“工具栏”进行选定和取消
privatevoid工具栏KToolStripMenuItem_Click(objectsender,EventArgse)
{
if(工具栏KToolStripMenuItem.Checked)
{
toolStrip1.Visible=false;
工具栏KToolStripMenuItem.Checked=false;
}
else
{
工具栏KToolStripMenuItem.Checked=true;
toolStrip1.Visible=true;
}
}
privatevoid帮助主题HToolStripMenuItem_Click(objectsender,EventArgse)
{
MessageBox.Show("不会使用请XXMicrosoft记事本");
}
//设置状态栏的显示时间
privatevoidtoolStripStatusLabel1_Click(objectsender,EventArgse)
{
toolStripStatusLabel1.Text=DateTime.Now.ToString();
}
//设置状态栏的行值和列值
privatevoidtoolStripStatusLabel3_Click(objectsender,EventArgse)
{
toolStripStatusLabel3.Text="行"+Control.MousePosition.X+"列"+Control.MousePosition.Y;
}
//设置“编辑”中的按钮是否启用
privatevoid编辑ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(richTextBox1.SelectionLength!
=0)
{
剪切XToolStripMenuItem.Enabled=true;
复制VToolStripMenuItem.Enabled=true;
删除DToolStripMenuItem.Enabled=true;
查找FToolStripMenuItem.Enabled=true;
查找下一个ToolStripMenuItem.Enabled=true;
}
else
{
剪切XToolStripMenuItem.Enabled=false;
复制VToolStripMenuItem.Enabled=false;
删除DToolStripMenuItem.Enabled=false;
查找FToolStripMenuItem.Enabled=false;
查找下一个ToolStripMenuItem.Enabled=false;
}
if(richTextBox1.Modified)
{
撤消ToolStripMenuItem.Enabled=true;
}
else
{
撤消ToolStripMenuItem.Enabled=false;
}
}
//设置“快捷键”中的按钮是否启用
privatevoidcontextMenuStrip1_Opening(objectsender,CancelEventArgse)
{
if(richTextBox1.SelectionLength!
=0)
{
剪切ToolStripMenuItem.Enabled=true;
复制ToolStripMenuItem.Enabled=true;
删除ToolStripMenuItem.Enabled=true;
}
else
{
剪切ToolStripMenuItem.Enabled=false;
复制ToolStripMenuItem.Enabled=false;
删除ToolStripMenuItem.Enabled=false;
}
if(richTextBox1.Modified)
{
撤消ToolStripMenuItem1.Enabled=true;
}
else
{
撤消ToolStripMenuItem1.Enabled=false;
}
}
}
}
Form2.cs的代码:
usingSystem;
usingSystem.Drawing;
usingSystem.Windows.Forms;
namespacenote
{
publicpartialclassForm2:
Form
{
publicForm2()
{
InitializeComponent();
}
//实例化一个可输入区域,接收Form1中RichTextBox的值
publicRichTextBoxrtb=newRichTextBox();
//定义查找的开始位置
publicintstartIndex=0;
publicintflag=-1;
//“查找下一个”按钮
publicvoidbutton1_Click(objectsender,EventArgse)
{
if(startIndex==0)
{
//获取光标的位置
startIndex=rtb.SelectionStart;
}
if(this.checkBox1.Checked)
{
//向下查找
if(this.radioButton2.Checked)
{
//索引:
CurrentCulture使用区域敏感排序规则和当前区域比较字符串。
//CurrentCultureIgnoreCase使用区域敏感排序规则、当前区域来比较字符串,
//同时忽略被比较字符串的大小写。
flag=rtb.Text.IndexOf(textBox1.Text,startIndex,StringComparison.CurrentCulture);
}
//向上查找
if(this.radioButton1.Checked&&startIndex>2)
{
flag=rtb.Text.LastIndexOf(textBox1.Text,startIndex-2,StringComparison.CurrentCulture);
}
}
else
{
if(this.radioButton2.Checked)
{
flag=rtb.Text.IndexOf(textBox1.Text,startIndex,StringComparison.CurrentCultureIgnoreCase);
}
if(this.radioButton1.Checked&&startIndex>2)
{
flag=rtb.Text.LastIndexOf(textBox1.Text,startIndex-2,StringComparison.CurrentCultureIgnoreCase);
}
}
if(flag>-1)
{
//设置选中字体的背景颜色
rtb.SelectionBackColor=rtb.BackColor;
startIndex=flag+1;
rtb.SelectionStart=flag;
flag=-1;
//获取选中字体的长度
rtb.SelectionLength=textBox1.Text.Length;
rtb.SelectionBackColor=Color.SkyBlue;
}
else
{
MessageBox.Show("找不到\""+textBox1.Text+"\"","提示");
}
}
//销毁当前窗体
publicvoidbutton2_Click(objectsender,EventArgse)
{
this.Close();
}
//设置查找按钮是否启用
publicvoidtextBox1_TextChanged(objectsender,EventArgse)
{
if(textBox1.Text!
="")
{
button1.Enabled=true;//启用
}
else
{
button1.Enabled=false;//禁用
}
}
}
}
Form3.cs的代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
namespacenote
{
publicpartialclassForm3:
Form
{
publicForm3()
{
InitializeComponent();
}
Form2form2=newForm2();
//实例化一个可输入区域,接收Form1中RichTextBox的值
publicRichTextBoxrtb=newRichTextBox();
//定义查找的开始位置
publicintstartIndex=0;
publicintflag=-1;
//设置查找,替换按钮是否启用
publicvoidtextBox1_TextChanged(objectsender,EventArgse)
{
startIndex=rtb.SelectionLength;
if(textBox1.Text!
="")
{
button1.Enabled=true;
button2.Enabled=true;
button3.Enabled=true;
}
else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 简单 记事本 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)