当前位置: 移动技术网 > IT编程>开发语言>c# > C#编写一个简单记事本功能

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

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文实例为大家分享了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();
  }

  

 }
}

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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网