欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-18 08:49:28
本文实例为大家分享了c#编写记事本的具体代码,供大家参考,具体内容如下 using system; using system.collections.gener...

本文实例为大家分享了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();
  }

  

 }
}

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

上一篇:

下一篇: