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

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



}
}

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

C# 获取硬件参数的实现方法示例代码:private static string GetIdentifier(string wmiClass, string wmiProperty, string wmiMus ...