当前位置:
文档之家› 使用C#设计仿Windows记事本
使用C#设计仿Windows记事本
FontDialog控件
用于设置文本字体,可以改变字体、字号、字形、 颜色等。
常用属性 Font ShowColor
说明 获取或设置选定的字体 是否显示颜色选项,默认为不显示
ShowEffects
是否包含特殊效果选项,如删除线,下 划线等,默认为显示
private void mnuFont_Click(object sender, EventArgs e) //修改字体 { FontDialog fontDialog1 = new FontDialog(); fontDialog1.ShowColor =true ; if (fontDialog1.ShowDialog() == DialogResult.OK) rtxtContent.Font = fontDialog1.Font; }
记事本功能实现
一、文件菜单
1. 实现:另存为…
分析:
在记事本窗体中设置字段或声明对象: • 添加一个变量_filename,用来保存文件名; • 声明一个SaveFileDialog类控件,取名为saveFileDialog1 “另存为…”的单击事件: 1. 设置saveFileDialog1的属性; 2. 创建StreamWriter对象,取名为sw1, 使用sw1将rtxtContent中的内容写入到指定的文件中; 3. 设置rtxtContent.Modified=false; 4. 设置_filename字段; 5. 关闭sw1对象
FormBorderStyle 提示窗体的边框和标题栏的外观和行为
三、查找与替换
1. 实现:查找
关键技术:
1. 富文本框的Find()方法
rtxtContent.Find(searchString); rtxtContent.Find(searchString,searchPosition, RichTextBoxFinds.MatchCase);
FileNames
只读属性,获取用户选择的多个文件名
OpenFileDialog odlg = new OpenFileDialog(); odlg.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"; odlg.Title = "打开文件"; if (odlg.ShowDialog() == DialogResult.OK) //显示打开文件对话框 { StreamReader sr = new StreamReader(odlg.FileName ,Encoding .Default ); rtxtContent.Text = sr.ReadToEnd(); sr.Close(); }
SaveFileDialog控件
SaveFileDialog控件本身并不能保存文件,如 要写文件可以通过创建StreamWriter对象来实 现。
常用属性 FileName Filter AddExtension 说明
获取或设置用户在保存文件对话框中选择的文件 名 设置文件筛选过滤器,用于指定对话框中文件类 型 设置在省略扩展名时,是否自动将扩展名添加到 文件名上
DefaultExt
默认的文件扩展名
SaveFileDialog sdlg = new SaveFileDialog(); sdlg.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"; sdlg.Title = “保存文件"; Sdlg.AddExtension=true; Sdlg.DefaultExt=“.txt”; if (sdlg.ShowDialog() == DialogResult.OK) //显示保存文件对话框 { StreamWriter sw = new StreamWriter(sdlg .FileName ,true,Encoding .Default ); sw.Write (rtxtContent.Text); sw.Close(); }
界面设计
RichTextBox控件
Dock:Fill;随容器的大小而改变自身大小 Modified:设置或判断控件中的内容是否被修 改 Selected:获取或设置选定文本 Font:获取或设置字体
菜单项
6
文件的读、写操作
文件和流
System.IO命名空间提供了操作文件与目录 的类 文件的读取需要用流(stream)来进行操作 流就是C#中读写文件的通道 程序通过输入流从数据源读取数据,通过输出 流向目的地写数据。
判断:_isContinue,条件为真:
• 声明一个OpenFileDialog控件 • 创建一个StreamReader类对象 • 将指定的文件显示出来
二、编辑菜单
1. 实现:剪切,复制,粘贴,删除,撤销,全选 分析:RichTextBox的常用属性和方法
常用属性 Select() SelectAll() Cut() Copy() Paste() Undo() 选择文本 选择所有内容 将选择的内容剪切至剪贴板 将选择的内容复制至剪贴板 将剪贴板中的内容粘贴至光标处 撤销 说明
判断:_isContinue,条件为真:
• 将rtxtContent清空; • 设置 form1.Text="新建文本文档_记事本"; • 设置 _filename=“”;
一、文件菜单
4. 实现:打开
分析(以下内容均在“打开”菜单项的单击事件中实现)
添加一个标志:bool _isContinue=true; 判断:rtxtContent中是否有修改后未作的内容,条件为真: 弹击消息框,提示是否需要保存 • Yes:调用“保存”功能 • No:不作任何操作 • Cancel:设置 _isContinue=false
三、查找与替换
创建用户自定义对话框 对话框与窗口的不同主要体现在对话框不能调整大 小。因此将窗体设置成对话框,需设置窗体的几个 属性。 常用属性
MaximizeBox MinimizeBox StartPosition AcceptButton
说明
确定窗体标题栏是否有最大化框 确定窗体标题栏是否有最小化框 确定窗体第一次出现时的位置 设置窗体的“接受”按钮,用户按 “Enter“键,都相当于单击该按钮
OpenFileDialog控件
OpenFileDialog控件本身并不能打开文件,如 要显示文件可以通过创建StreamReader对象来 读取文件内容。
常用属性 FileName Filter 说明
获取或设置用户在打开文件对话框中选择的文件名 设置文件筛选过滤器,用于指定对话框中文件类型
Multiselect 设置是否允许选择多个文件
数据源 (文件、键盘、 输入流 内存) 数据目的 (文件、控制台、 内存)
C#程序 输出流
System.IO.StreamWriter
写文件
StreamWriter sw = new StreamWriter(@“c:\testfile.txt”, true, System.Text.Encoding.Default); //第一个参数为文件名,第二个参数判断是否覆盖已有 //文件 ,第三个参数为编码方式 sw.WriteLine("测试数据1"); sw.WriteLine("测试数据2"); sw.Write("测试数据3测试数据3测试数据3"+ "测试数据3测试数据3测试数据3测试数据3"+ "测试数据3测试数据3测试数据3测试数据3"); sw.Close();
2. 富文本框的Select()方法 rtxtContent.Select(startPosition, selectLength);
//添加两个成员字段 int _findPosition=0; string _findString=“”;
private void mnuFind_Click(object sender, EventArgs e) { frmFind frmFind1 = new frmFind(); if (frmFind1.ShowDialog() == DialogResult.OK) { _findString = frmFind1.strFind; Find(); //调用Find()方法进行查找 } }
通用对话框的使用方法
首先声明一个通用对话框,设置一些必要属性 调用ShowDialog()方法打开对话框 接收用户与对话框交互操作的返回值,返回值 是DialogResult实例
OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"; dlg.Title = "打开文件"; if (dlg.ShowDialog() == DialogResult.OK) //显示打开文件 对话框 { string _fileName=dlg.FileName; }
ClearUndo()
SelectionLength SelectedText
消除最近的撤销信息
选择内容的长度 选择的文本
二、编辑菜单
当“编辑”菜单的Click事件和DropDownOpened 事件发生时,判断“编辑”菜单下的各二级菜单项是 否可用。
撤销 剪切、复制、删除 查找、替换 粘贴
rtxtContent.Modified rtxtContent.SelectedText rtxtContent.Text Clipboard.GetText().ToString()
一、文件菜单
2. 实现:保存
分析:(以下内容均在“保存”菜单项的单击事件中实现)