- Windows程序设计与架构
- 蔺华 汤春林 蔡兴旺编著
- 741字
- 2020-08-28 17:44:34
2.6 案例分析6 创建简单的记事本
2.6.1 案例描述
本节介绍如何创建简单的记事本程序。
2.6.2 案例分析
合理使用I/O文件操作。
2.6.3 案例实现与技巧
① 首先,运行Visual Studio 2005,创建名为Notepad的Windows应用程序。
② 向窗体中拖曳一个MenuStrip控件,并在空白处添加“文件”菜单,在此菜单下新建5个下拉菜单,其Text属性分别为“新建”、“打开”、“保存”、“另存为”、“-”、“退出”。
③ 向窗体中添加“格式”菜单。在此菜单下新建两个下拉菜单,其Text属性分别为“自动换行”、“字体”。
④ 在窗体里添加一个RichTextBox控件,在“属性”窗口中修改属性“Dock”为“Fill”。
⑤ 在Form1添加如下变量:
private bool dirty = false; private string filepath = "";
⑥ 添加如下方法:
private void MySaving() { if (dirty) { if (MessageBox.Show("需要保存文件吗?","提示框",MessageBoxButtons. YesNo) == DialogResult.Yes) { if (saveFileDialog1.ShowDialog() == DialogResult.OK) { dirty = false; if (filepath.Length == 0) { filepath = saveFileDialog1.FileName; } StreamWriter sTmp = new StreamWriter(filepath); sTmp.Write(richTextBox1.Text); sTmp.Flush(); sTmp.Close(); } } } }
⑦ 双击“新建”菜单,在事件响应程序里添加如下代码:
private bool dirty = false; private string filepath = "";
⑧ 双击“打开”菜单,在事件响应程序里添加如下代码:
MySaving(); if (openFileDialog1.ShowDialog() == DialogResult.OK) { dirty = false; StreamReader sTmp = new StreamReader(openFileDialog1.FileName,System.Text.Encoding.ASCII); filepath = openFileDialog1.FileName; richTextBox1.Text = ""; richTextBox1.Text = sTmp.ReadToEnd(); }
⑨ 双击“保存”菜单,在事件响应程序里添加如下代码:
MySaving();
⑩ 双击“另存为”菜单,在事件响应程序里添加如下代码:
MySaving();
⑪ 双击“退出”菜单,在事件响应程序里添加如下代码:
MySaving(); if (dirty == false) Close();
⑫ 双击“自动换行”菜单,在事件响应程序里添加如下代码:
if (richTextBox1.WordWrap == true) { richTextBox1.WordWrap = false; wordwrapToolStripMenuItem.Checked = false; } else { richTextBox1.WordWrap = true; wordwrapToolStripMenuItem.Checked = true; }
⑬ 双击“字体”菜单,在事件响应程序里添加如下代码:
if (fontDialog1.ShowDialog() == DialogResult.OK) { richTextBox1.Font = fontDialog1.Font; }
⑭ 双击“关于记事本”菜单,在事件响应程序里添加如下代码:
MessageBox.Show("记事本实例1.0版","关于记事本");
⑮ 程序运行结果如图2-15、图2-16所示。
图2-15 程序运行结果(一)
图2-16 程序运行结果(二)