C#实验-记事本(带源码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
记事本——实验报告
一、实验目的
创建一个Windows窗体应用程序,实现记事本的基本功能,具体包括新建文件、打开文件、保存文件、查找等功能。该实验的目的是掌握:
(一)窗体程序的开发
(二)常用控件的使用
(三)常用事件的处理
(四)对话框的设计和使用
(五)文件访问的基本方法
二、实验内容
(一)主窗口Form1
图1 主窗口
主窗口界面如图1所示,功能包括基本编辑操作、主菜单和其它快捷键功能。
1、编辑功能用文本框实现。
2、窗口标题与文件名相一致。未打开文件时为“无标题”,打开文件(另存为)后为文件名。
3、支持菜单的热键和快捷键。二者的区别是前者是激活菜单且显示出该菜单项时有效,后者在任何时候有效。
4、实现新建、打开、保存和查找功能。
5、支持F3(查找下一个)。
表1 Form1控件列表
控件属性/事件值说明
Form1 KeyPreview True 否则Form1的KeyDown无效
文件FToolStripMenuItem
Text 文件(&F) &形成下划线
Click 文件NToolStripMenuItem_Click
文件NToolStripMenuItem
Text 新建(&N)
Click 打开OToolStripMenuItem_Click
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form2 fm2 = null;
public string searchText = "";
public Form1()
{
InitializeComponent();
}
private void saveFile()
{
if (textBox1.Text.Length > 0 && textBox1.Modified) {
if (MessageBox.Show("想保存文件吗?", "记事本",
MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Warning) == DialogResult.Yes)
{
SaveFileDialog d = new SaveFileDialog();
d.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if (d.ShowDialog() == DialogResult.OK)
{
FileStream fs = File.OpenWrite(d.FileName);
StreamWriter sr = new StreamWriter(fs);
sr.Write(textBox1.Text);
sr.Flush();
fs.Close();
}
}
}
}
private void文件NToolStripMenuItem_Click(object sender, EventArgs e) {
saveFile();
textBox1.Text = "";
Text = "无标题 - 记事本";
}
private void OpenFile()
{
OpenFileDialog d = new OpenFileDialog();
d.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if (d.ShowDialog() == DialogResult.OK)
{
FileStream fs = File.OpenRead(d.FileName);
StreamReader sr = new StreamReader(fs);
string s;
string s1 = "";
while ((s = sr.ReadLine()) != null)
{
s1 += s;
}
textBox1.Text = s1;
string fname = d.FileName.Substring(stIndexOf("\\") + 1);
Text = fname + " - 记事本";
}
}
private void打开OToolStripMenuItem_Click(object sender, EventArgs e) {
saveFile();
OpenFile();
}
private void保存SToolStripMenuItem_Click(object sender, EventArgs e) {
saveFile();
}
private void查找FToolStripMenuItem_Click(object sender, EventArgs e) {
if (fm2 == null)
{
fm2 = new Form2();
fm2.fm1 = this;
Form2.textBox2 = textBox1;
fm2.Show();
}
else
fm2.Activate();
}
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A && e.Control && !e.Shift && !e.Alt)
{
textBox1.SelectAll();
e.Handled = true;
}
else if (e.KeyCode == Keys.F3 && !e.Control && !e.Shift && !e.Alt) {
Form2.findNext();
}
}
}
}