加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#编写一个简单记事本功能

发布时间:2020-12-15 05:47:53 所属栏目:百科 来源:网络整理
导读:本文实例为大家分享了C#编写记事本的具体代码,供大家参考,具体内容如下 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threadin

本文实例为大家分享了C#编写记事本的具体代码,供大家参考,具体内容如下

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 Notepad
{
  public partial class frmNotepad : Form
  {  
    //****************************************
    /*布尔变量b用于判断文件是新建的还是从磁盘打开的 true 表示从磁盘打开,false表示文件是新建的,默认值为false*/
    bool b = false;
    /*布尔变量s用于判断文件是否被保存 true 表示已经被保存,false表示未被保存,默认值为true*/
    bool s = true;
    //***********************************

    public frmNotepad()
    {
      InitializeComponent();
      richTextBox1.Text = "";
    }

    //*********************************************** 
    // 多格式文本框的TextChanged事件代码 
    //************************************************ 
    private void richTextBox1_TextChanged(object sender,EventArgs e)
    {
      //文本框被修改后,设置s为false,表示文件未保存
      s = false;
    }


    //***************************************** 
    // 【文件】菜单各菜单项的单击代码 
    //******************************************* 
    //*****************************************
    // 【新建】菜单代码 
    //*********************************************
    private void 新建NToolStripMenuItem_Click(object sender,EventArgs e)
    {
      //判断当前文件是否是从磁盘打开,或者新建时文档不为空,并且文件未被保存
      if(b == true || richTextBox1.Text.Trim() != "")
      {
        //若文件未保存
        if(s == false)
        {
          string result;
          result = MessageBox.Show("文件尚未保存,是否保存?","保存文件",MessageBoxButtons.YesNoCancel).ToString();
          switch(result)
          {
            case"Yes":
              //若文件是从磁盘打开的
              if(b == true)
              {
                //按文件打开的路径保存文件
                richTextBox1.SaveFile(sdlgNotepad.FileName);
              }else if(sdlgNotepad.ShowDialog()==DialogResult.OK)
              {
                richTextBox1.SaveFile(sdlgNotepad.FileName);
              }
              s = true;
              richTextBox1.Text = "";
              break;
            case"No":
              b = false;
              richTextBox1.Text = "";
              break;
          }
        }
      }
    }

    //******************************************* 
    // 【保存】菜单代码 
    //********************************************
    private void 保存SToolStripMenuItem_Click(object sender,EventArgs e)
    {
      //若文件从磁盘打开并且修改了其中内容
      if(b == true && richTextBox1.Modified == true)
      {
        richTextBox1.SaveFile(odlgNotepad.FileName);
        s = true;
      }
      else if(b == false && richTextBox1.Text.Trim() != "" &&sdlgNotepad.ShowDialog() == DialogResult.OK)
      {
        //保存文件
        richTextBox1.SaveFile(sdlgNotepad.FileName);
        s = true;
        b = true;
        odlgNotepad.FileName = sdlgNotepad.FileName;
      }
    }

    //********************************************** 
    // 【打开】菜单代码 
    //************************************************
    private void 打开OToolStripMenuItem_Click(object sender,EventArgs e)
    {
       //判断当前文件是否是从磁盘打开,或者新建时文档不为空,并且文件未被保存
      try
      {
        if (b == true || richTextBox1.Text.Trim() != "")
        {
          if (s == false)
          {
            string result;
            result = MessageBox.Show("文件尚未保存,是否保存?",MessageBoxButtons.YesNoCancel).ToString();
            switch (result)
            {
              case "Yes":
                //若文件是从磁盘打开的
                if (b == true)
                {
                  //按文件打开的路径保存文件
                  richTextBox1.SaveFile(sdlgNotepad.FileName);
                }
                else if (sdlgNotepad.ShowDialog() == DialogResult.OK)
                {
                  richTextBox1.SaveFile(sdlgNotepad.FileName);
                }
                s = true;
                richTextBox1.Text = "";
                break;
              case "No":
                b = false;
                richTextBox1.Text = "";
                break;
            }
          }
        }
        odlgNotepad.RestoreDirectory = true;
        if ((odlgNotepad.ShowDialog() == DialogResult.OK) && odlgNotepad.FileName != "")
        {
          //打开文件
          richTextBox1.LoadFile(odlgNotepad.FileName);
          b = true;
        }
        s = true;
      }
      catch(Exception ex)
      {
          
      }

    }

    //************************************ 
    // 【另存为】菜单代码 
    //***************************************** 
    private void 另存为AToolStripMenuItem_Click(object sender,EventArgs e)
    {
      if(sdlgNotepad.ShowDialog() == DialogResult.OK)
      {
        richTextBox1.SaveFile(sdlgNotepad.FileName);
        s = true;
      }
    }

    //*************************************** 
    // 【退出】菜单代码 
    //******************************************
    private void 退出XToolStripMenuItem_Click(object sender,EventArgs e)
    {
      //结束程序运行
      Application.Exit();
    }

    //************************************ 
    // 【编辑】菜单各菜单项的单击代码 
    //********************************************* 
    // 【撤销】菜单代码 
    private void 撤消UToolStripMenuItem_Click(object sender,EventArgs e)
    {
      //撤销操作
      richTextBox1.Undo();
    }

    // 【复制】菜单代码
    private void 复制CToolStripMenuItem_Click(object sender,EventArgs e)
    {
      //复制
      richTextBox1.Copy();
    }

    // 【剪切】菜单代码
    private void 剪切TToolStripMenuItem_Click(object sender,EventArgs e)
    {
      //剪切
      richTextBox1.Cut();
    }

    // 【粘贴】菜单代码
    private void 粘贴PToolStripMenuItem_Click(object sender,EventArgs e)
    {
      //粘贴
      richTextBox1.Paste();
    }

    // 【全选】菜单代码
    private void 全选AToolStripMenuItem_Click(object sender,EventArgs e)
    {
      //全选
      richTextBox1.SelectAll();
    }

    //************************************* 
    // 【格式】菜单代码 
    //*************************************** 
    private void 工具TToolStripMenuItem_Click(object sender,EventArgs e)
    {

    }

    // 【自动换行】菜单代码
    private void 自定义CToolStripMenuItem_Click(object sender,EventArgs e)
    {
      if(自定义CToolStripMenuItem.Checked == false)
      {
        //选中自动换行
        自定义CToolStripMenuItem.Checked = true;
        //设置为自动换行
        richTextBox1.WordWrap = true;
      }
      else
      {
        //未选中自动换行
        自定义CToolStripMenuItem.Checked = false;
        //设置为不自动换行
        richTextBox1.WordWrap = false;
      }
    }

    // 【字体】菜单代码
    private void 选项OToolStripMenuItem_Click(object sender,EventArgs e)
    {
      fdlgNotepad.ShowColor = true;
      if(fdlgNotepad.ShowDialog() == DialogResult.OK)
      {
        richTextBox1.SelectionColor = fdlgNotepad.Color;
        richTextBox1.SelectionFont = fdlgNotepad.Font;
      }
    }

    //************************************ 
    // 【帮助】菜单代码 
    //************************************
    // 【关于】菜单代码
    private void 关于AToolStripMenuItem_Click(object sender,EventArgs e)
    {
      MessageBox.Show("wky 编写","关于"记事本"",MessageBoxButtons.OK);
    }

    //*************************************** 
    // 计时器控件的Tick事件代码 
    //************************************
    private void tmrNotepad_Tick(object sender,EventArgs e)
    {
      //获取系统当前时间,并显示在状态栏中
      tssLbl2.Text = System.DateTime.Now.ToString();
    }

    private void 粘贴PToolStripButton_Click(object sender,EventArgs e)
    {
      richTextBox1.Paste();
    }

    

  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读