c#开发一个“记事本”程序,要求能够实现文件的新建、打开、编辑、保存功能

本文介绍了一个简单的记事本程序开发过程,包括如何利用C#实现文件的新建、打开、编辑与保存等功能。通过使用FolderBrowserDialog进行文件夹选择,OpenFileDialog与SaveFileDialog进行文件对话框操作,程序实现了基本的文字处理功能。

开发一个“记事本”程序,要求能够实现文件的新建、打开、编辑、保存功能

(注意:资源的释放,可以使用OpenFileDialogSaveFileDialog控件或者类)


using System;

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace recordbook
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog folder = new FolderBrowserDialog();
            folder.ShowDialog();
            string path = folder.SelectedPath;
            string name = "\\" + "aa.txt";
            if (!File.Exists(path + name))
            {
                FileStream fs1 = new FileStream(path + name, FileMode.Create, FileAccess.Write);
                StreamWriter sw = new StreamWriter(fs1);
                MessageBox.Show("创建成功!");
                sw.Close();
                fs1.Close();
               
            }
            }

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "打开(Open)";
            ofd.FileName = "";
            ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);//为了获取特定的系统文件夹,可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录
            ofd.Filter = "文本文件(*.txt)|*.txt";
            ofd.ValidateNames = true;     //文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名
            ofd.CheckFileExists = true;  //验证路径有效性
            ofd.CheckPathExists = true; //验证文件有效性
            try
            {
                if (ofd.ShowDialog() == DialogResult.OK)
                {
                    StreamReader sr = new StreamReader(ofd.FileName, System.Text.Encoding.Default);
                    this.richTextBox1.Text = sr.ReadToEnd();
                    
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());
            }
        
        }
        private void openFileDialog2_FileOk(object sender, CancelEventArgs e)
        {

        }

        private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {

        }

        public void richTextBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void button4_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.InitialDirectory = "d:\\";
            saveFileDialog1.Filter = "ext files (*.txt)|*.txt|All files(*.*)|*>**";
            saveFileDialog1.FilterIndex = 2;
            saveFileDialog1.RestoreDirectory = true;
            DialogResult dr = saveFileDialog1.ShowDialog();
            if (dr == DialogResult.OK && saveFileDialog1.FileName.Length > 0)
            {
                richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                MessageBox.Show("存储文件成功!", "保存文件");
            }
        }
        }
    }

新建txt文件


实现记事本的大部分功能,适合新手看。 // 文本编辑区 private JTextArea editArea = new JTextArea(); // 菜单项 private JMenu[] menus = { new JMenu("文件(F)"), new JMenu("编辑(E)"), new JMenu("格式(E)"), new JMenu("查看(V)"), new JMenu("帮助(H)") }; private JMenuItem[] fileMenu = { new JMenuItem("新建(N) "), new JMenuItem("打开(O)... "), new JMenuItem("保存(S) "), new JMenuItem("另存为(A)... "), new JMenuItem("页面设置(U)... "), new JMenuItem("打印(P)... "), new JMenuItem("退出(X) ") }; private JMenuItem[] editMenu = { new JMenuItem("撤销(U) "), new JMenuItem("剪切(T) "), new JMenuItem("复制(C) "), new JMenuItem("黏贴(P) "), new JMenuItem("删除(L) "), new JMenuItem("查找(F)... "), new JMenuItem("查找下一个(N) "), new JMenuItem("替换(R)... "), new JMenuItem("转到(G)... "), new JMenuItem("全选(A) "), new JMenuItem("时间/日期(D) ") }; private JCheckBoxMenuItem formatMenu1 = new JCheckBoxMenuItem( "自动换行(W) "); private JMenuItem formatMenu2 = new JMenuItem("字体(F)... "); private JMenuItem checkMenu = new JMenuItem("状态栏(S) "); private JMenuItem[] helpMenu = { new JMenuItem("查看帮助(H) "), new JMenuItem("关于记事本(A) ") }; private JPopupMenu pmenus = new JPopupMenu(); private JMenuItem[] popupMenu = { new JMenuItem("撤销(U) "), new JMenuItem("剪切(T) "), new JMenuItem("复制(C) "), new JMenuItem("黏贴(P) "), new JMenuItem("删除(L) "), new JMenuItem("全选(A) "), }; // 剪切板引用 private Toolkit toolKit = Toolkit.getDefaultToolkit(); private Clipboard clipBoard = toolKit.getSystemClipboard(); // 其他变量 private boolean isNewFile = true; private File currentFile; private String oldTxt; // 撤销管理器 private UndoManager undo = new UndoManager(); private UndoableEditListener undoHandler = new UndoHandler();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值