(文章末尾附有程序下载链接)
1. 记事本设计
1.1. 记事本开发目标
1.1.1. 实验目的
掌握Windows窗体程序中菜单,工具栏,定时器以及其他常用控件的使用。
1.1.2. 实验要求
(1) 能够使用C#编写基本的程序。
(2) 掌握基本控件的常用的属性和事件代码的编写。
(3) 实现基本的异常处理。
1.1.3. 实验步骤
(1)创建一个窗体应用程序,实现windows的记事本的功能。
(2)基本要求:能编辑文本文件,注释清晰。
(3)提高要求:和Windows记事本一样。
2. 记事本界面预览
3. 记事本界面设计
新建一个Windows应用程序,并命名为“notepad”。下面介绍记事本程序的界面设计以及界面上各控件的属性设置。
3.1. 界面设计
3.1.1. 主界面设计
新建好“notepad”项目后,定位到记事本程序的窗体设计器窗口,命名为“记事本”,然后依次在窗体上放置以下控件(各1个):
(1) menuStrip(菜单控件)。
(2) richTextBox(多格式文本框控件)。
(3) statusStrip(状态栏控件)。
(4) contextMenuStrip(右击菜单控件)。
(5) openFileDialog(打开对话框)。
(6) saveFileDialog(保存对话框)。
(7) fontDialog(字体对话框)。
(8) pageSetupDialog(页面设置对话框)。
(9) printDocument(打印结果)。
(10) printDialog(打印对话框)。
(11) fileSystemWatcher(文件监视器)。
最终的用户各操作界面如下图所示(设置好属性后),其中部分控件、对话框显示在窗体设计器下方的组件板上。
3.1.2. “查找”功能界面设计
新建Windows窗体,命名为“查找”,并添加以下控件。
(1) label(标签控件)。
(2) textBox (文本框控件)。
(3) button(按钮控件)。
(4) checkBox(复选框控件)。
(5) groupBox(分组框控件)。
(6) radioButton(单选按钮控件)。
最终的用户各操作界面如下图所示(设置好属性后)。
3.1.3. “替换”功能界面设计
新建Windows窗体,命名为“替换”,并添加以下控件。
(1) label(标签控件)。
(2) textBox (文本框控件)。
(3) button(按钮控件)。
(4) checkBox(复选框控件)。
最终的用户各操作界面如下图所示(设置好属性后)。
3.1.4. “转到”功能界面设计
新建Windows窗体,命名为“转到”,并添加以下控件。
(1) label(标签控件)。
(2) textBox (文本框控件)。
(3) button(按钮控件)。
最终的用户各操作界面如下图所示(设置好属性后)。
3.1.5. “关于‘记事本’”功能界面设计
新建Windows窗体,命名为“关于‘记事本’”,并添加以下控件。
(1) pictureBox(图片控件)。
(2) button(按钮控件)。
最终的用户各操作界面如下图所示(设置好属性后)。
3.2. 属性设置
3.2.1. 主界面相关属性设置
(1) 主界面窗体的属性设置
(2) menuStrip(菜单控件)。
一级菜单属性如下:
二级菜单与一级菜单类似,除部分快捷键需显示即将ShowShortcutKeys设置为Ture,其余基本相同,此处不再一一列举。
(3) richTextBox(多格式文本框控件)。
3.2.2. “其他功能界面相关属性设置
其他功能界面相关控件及其属性除大小外基本为默认属性,此处也不做列举。
4. 记事本编码与展示
本章分别介绍记事本程序各个功能的实现与展示。
4.1. “文件(&F)”菜单功能
“文件”菜单可通过鼠标点击查看,也可通过快捷键“Alt+F”查看。
4.1.1. “新建(N)”选项
点击“文件”->“新建”选项,或按快捷键“Ctrl+N”,系统首先判断文本内容是否更改,如果已做更改则提示用户保存文件,点击保存则保存至原路径,否则初始化页面,并在磁盘中新建.txt格式文档。
(1) “新建”选项编码
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (od.FileName != "" && richboxTextHasChanged == true && MessageBox.Show("文本内容已更改\n是否保存修改?", "信息提示", MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK)
{
//若文本改动,首先保存
richTextBox1.SaveFile(od.FileName, RichTextBoxStreamType.PlainText);
}
//不然初始化界面
od.FileName = "";
this.Text = "记事本";
this.richTextBox1.Clear();
this.richboxTextHasChanged = false;
}
(2) “新建”选项展示
4.1.2. “打开(O)”选项
点击“文件”->“打开”,或按快捷键“Ctrl+O”,则弹窗提示用户选择打开电脑磁盘内.txt格式文件,并将文本文件里面的内容加载到界面内。
(1) “打开”选项编码
private void 打开OCtrlOToolStripMenuItem_Click(object sender, EventArgs e)
{
od.ShowDialog();//选择打开文本文件
if (od.FileName != "")
{
//将文本文件里面的内容加载到界面内
richTextBox1.LoadFile(od.FileName, RichTextBoxStreamType.PlainText);
this.Text = od.FileName + "-记事本";
}
}
(2) “打开”选项展示
4.1.3. “保存(S)”选项
点击“文件”->“保存”,或按快捷键“Ctrl+S”,若为新建文件则弹窗提示用户选择保存路径,保存格式为“.txt”;若为打开的现有文件则保存到原路径;若当时界面为空则提示用户“请先可打开文本文件”。
(1) “保存”选项编码
private void 保存SCtrlSToolStripMenuItem_Click(object sender, EventArgs e)
{
if (od.FileName != "")
{
richTextBox1.SaveFile(od.FileName, RichTextBoxStreamType.PlainText);
}
else
MessageBox.Show("请先打开文本文件", "信息提示", MessageBoxButtons.OK);
}
(2) “保存”选项展示
4.1.4. “另存为(A)”选择
点击“文件”->“另存为”,或按快捷键“Ctrl+A”,弹窗提示用户选择保存路径并命名,保存格式为“.txt”。
(1) “另存为”选项编码
private void 另存为AToolStripMenuItem_Click(object sender, EventArgs e)
{
if (sd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
richTextBox1.SaveFile(sd.FileName, RichTextBoxStreamType.PlainText);
}
}
(2) “另存为”选项展示
4.1.5. “页面设置(U)”选项
点击“文件”->“页面设置”,或按快捷键“Ctrl+U”,弹窗提示用户设置页面相关属性。
(1) “页面设置”选项编码
private void 页面设置UToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
pageSetupDialog.Document = printDocument1;
pageSetupDialog.Document.DefaultPageSettings.Color = false;
this.pageSetupDialog.ShowDialog();
}
catch {
}
}
(2) “页面设置”选项展示
4.1.6. “打印(P)”选项
点击“文件”->“打印”,或按快捷键“Ctrl+P”,弹窗提示用户选择打印相关设置。
&