利用C#实现记事本的功能的示例代码
作者:十七个远方在远方
知识点:
openFileDialog1 是一个 Windows 窗体应用程序中的控件,用于实现文件选择对话框的功能。它是 System.Windows.Forms.OpenFileDialog 类的一个实例。
OpenFileDialog 控件允许用户浏览文件系统并选择要打开的文件。它提供了一些属性和方法,用于设置和控制文件选择对话框的外观和行为。
在代码中,openFileDialog1 是一个在窗体设计器中创建的 OpenFileDialog 控件的实例。通过对该控件的属性进行设置,可以定义打开文件对话框的初始目录、可显示的文件类型等。
他有以下的属性和方法:
属性:
- InitialDirectory:获取或设置打开文件对话框的初始目录。
- Filter:获取或设置打开文件对话框可以显示的文件类型。
- FileName:获取或设置用户选择的要打开的文件的全路径。
- Multiselect:获取或设置一个值,指示是否允许选择多个文件。
- Title:获取或设置打开文件对话框的标题。
- CheckFileExists:获取或设置一个值,指示是否检查用户输入的文件是否存在。
- CheckPathExists:获取或设置一个值,指示是否检查用户输入的路径是否存在。
方法:
ShowDialog:显示打开文件对话框,并等待用户选择文件。返回一个 DialogResult 值,表示用户的操作结果。
OpenFile:打开用户选择的文件,并返回一个 Stream 对象,用于读取文件的内容。
int index = filename.LastIndexOf(@"\");
LastIndexOf 方法用于查找指定字符或字符串在字符串中最后一次出现的位置。
@"\" 表示反斜杠字符 \,在 C# 中需要使用 @ 符号来表示字符串中的转义字符。
filename.LastIndexOf(@"\") 返回最后一个反斜杠字符 \ 在 filename 字符串中的位置。
index 变量用于存储最后一个反斜杠字符的位置。
filename = filename.Substring(index + 1);
Substring 方法用于从字符串中提取子字符串。
index + 1 表示从 index 位置的下一个字符开始提取子字符串。
filename.Substring(index + 1) 返回从 index + 1 位置开始到字符串末尾的子字符串。
filename 变量被赋值为提取的文件名(不包括路径)。
this.Text = filename + "我的记事本";
this.Text 表示当前窗口的标题栏文本。
filename + "我的记事本" 将提取的文件名与字符串 "我的记事本" 进行拼接。
this.Text = filename + "我的记事本" 将拼接后的字符串设置为窗口的标题。
SaveFileDialog 类是用于显示保存文件对话框的 Windows 窗体控件。它提供了一些属性和方法,用于配置和操作保存文件对话框的行为和结果。
以下是 SaveFileDialog 类的一些常用属性和方法:
属性:
FileName:获取或设置保存文件对话框中的默认文件名。
Filter:获取或设置保存文件对话框中可以显示的文件类型。
InitialDirectory:获取或设置保存文件对话框的初始目录。
Title:获取或设置保存文件对话框的标题。
OverwritePrompt:获取或设置一个值,指示是否在用户选择的文件已存在时显示覆盖提示。
CreatePrompt:获取或设置一个值,指示是否在用户输入的文件名不存在时显示创建提示。
DefaultExt:获取或设置默认的文件扩展名。
方法:
ShowDialog():显示保存文件对话框,并返回一个 DialogResult 值,表示用户的操作结果。
Dispose():释放 SaveFileDialog 对象使用的资源。
实现代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace NoteBook45 { public partial class Form1 : Form { bool isFirstSave = true; public Form1() { InitializeComponent(); } private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)//暴力新建 { rtxtEdit.Clear(); this.Text = "无标题-我的记事本"; } private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } private void Form1_Load(object sender, EventArgs e) { this.Text = "无标题-我的记事本"; rtxtEdit.WordWrap = false; 自动换行ToolStripMenuItem.CheckOnClick = true; } private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)//暴力退出 { Application.Exit(); } private void 撤销ToolStripMenuItem_Click(object sender, EventArgs e) { rtxtEdit.Undo(); } private void 复制ToolStripMenuItem_Click(object sender, EventArgs e) { if (rtxtEdit.SelectedText != "") rtxtEdit.Copy(); else MessageBox.Show("没有选中任何内容,无法进行复制!"); } private void 粘贴ToolStripMenuItem_Click(object sender, EventArgs e) { rtxtEdit.Paste(); } private void 剪切ToolStripMenuItem_Click(object sender, EventArgs e) { if (rtxtEdit.SelectedText != "") rtxtEdit.Cut(); else MessageBox.Show("没有选择任何内容,无法进行剪切!"); } private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) { } private void 复制ToolStripMenuItem1_Click(object sender, EventArgs e) { 复制ToolStripMenuItem_Click(sender, e); } private void 粘贴ToolStripMenuItem1_Click(object sender, EventArgs e) { 粘贴ToolStripMenuItem_Click(sender, e); } private void 剪切ToolStripMenuItem1_Click(object sender, EventArgs e) { 剪切ToolStripMenuItem_Click(sender, e); } private void toolStripButton新建_Click(object sender, EventArgs e) { 新建ToolStripMenuItem_Click(sender, e); } private void toolStripButton打开_Click(object sender, EventArgs e) { } private void toolStripButton保存_Click(object sender, EventArgs e) { } private void toolStripButton复制_Click(object sender, EventArgs e) { 复制ToolStripMenuItem_Click(sender, e); } private void toolStripButton粘贴_Click(object sender, EventArgs e) { 粘贴ToolStripMenuItem_Click(sender, e); } private void toolStripButton剪切_Click(object sender, EventArgs e) { 剪切ToolStripMenuItem_Click(sender, e); } private void toolStripButton撤销_Click(object sender, EventArgs e) { 撤销ToolStripMenuItem_Click(sender, e); } private void 打开ToolStripMenuItem_Click(object sender, EventArgs e)//暴力打开 { openFileDialog1.InitialDirectory=@"C:\";//设置打开文件对话框的初始目录 openFileDialog1.Filter = "文本文件(*.txt)|*.TXT";//设置打开文件对话框可以显示的文件类型 openFileDialog1.FileName = ""; openFileDialog1.ShowDialog();//显示打开文件对话框 string filename = openFileDialog1.FileName;//获取用户选择的要打开的文件的全路径 if (filename == "") MessageBox.Show("没有选中要打开的文件!"); else { rtxtEdit.LoadFile(filename, RichTextBoxStreamType.PlainText);//以纯文本的形式,将文件内容加载进富文本框 //c:\my documents\1.txt int index = filename.LastIndexOf(@"\");//求最后一个反斜杠在文件名中的位置 filename = filename.Substring(index + 1);//求文件名的主文件名和扩展名 this.Text = filename + "我的记事本"; } } private void 保存ToolStripMenuItem_Click(object sender, EventArgs e) { if (isFirstSave) { 另存为ToolStripMenuItem_Click(sender, e); isFirstSave = false; } else rtxtEdit.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText); } private void 另存为ToolStripMenuItem_Click(object sender, EventArgs e) { saveFileDialog1.InitialDirectory = @"c:\"; saveFileDialog1.Filter = "文本文件(*.txt)|*.TXT"; saveFileDialog1.FileName = ""; string filename = ""; if (saveFileDialog1.ShowDialog() == DialogResult.OK) { filename = saveFileDialog1.FileName; rtxtEdit.SaveFile(filename, RichTextBoxStreamType.PlainText); int index = filename.LastIndexOf(@"\");//求最后一个反斜杠在文件名中的位置 filename = filename.Substring(index + 1);//求文件名的主文件名和扩展名 this.Text = filename + "我的记事本"; } } private void 自动换行ToolStripMenuItem_Click(object sender, EventArgs e) { if (自动换行ToolStripMenuItem.Checked) rtxtEdit.WordWrap = true; else rtxtEdit.WordWrap = false; } private void rtxtEdit_TextChanged(object sender, EventArgs e) { } } }
到此这篇关于利用C#实现记事本的功能的示例代码的文章就介绍到这了,更多相关C#记事本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!