C#編寫一個簡單記事本功能
更新時間:2017年10月25日 08:36:49 作者:賣畫的作家
這篇文章主要為大家詳細(xì)介紹了C#編寫一個簡單記事本功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
本文實(shí)例為大家分享了C#編寫記事本的具體代碼,供大家參考,具體內(nèi)容如下
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表示文件是新建的,默認(rèn)值為false*/
bool b = false;
/*布爾變量s用于判斷文件是否被保存 true 表示已經(jīng)被保存,false表示未被保存,默認(rèn)值為true*/
bool s = true;
//***********************************
public frmNotepad()
{
InitializeComponent();
richTextBox1.Text = "";
}
//***********************************************
// 多格式文本框的TextChanged事件代碼
//************************************************
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
//文本框被修改后,設(shè)置s為false,表示文件未保存
s = false;
}
//*****************************************
// 【文件】菜單各菜單項(xiàng)的單擊代碼
//*******************************************
//*****************************************
// 【新建】菜單代碼
//*********************************************
private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
{
//判斷當(dāng)前文件是否是從磁盤打開,或者新建時文檔不為空,并且文件未被保存
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)
{
//若文件從磁盤打開并且修改了其中內(nèi)容
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)
{
//判斷當(dāng)前文件是否是從磁盤打開,或者新建時文檔不為空,并且文件未被保存
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)
{
//結(jié)束程序運(yùn)行
Application.Exit();
}
//************************************
// 【編輯】菜單各菜單項(xiàng)的單擊代碼
//*********************************************
// 【撤銷】菜單代碼
private void 撤消UToolStripMenuItem_Click(object sender, EventArgs e)
{
//撤銷操作
richTextBox1.Undo();
}
// 【復(fù)制】菜單代碼
private void 復(fù)制CToolStripMenuItem_Click(object sender, EventArgs e)
{
//復(fù)制
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;
//設(shè)置為自動換行
richTextBox1.WordWrap = true;
}
else
{
//未選中自動換行
自定義CToolStripMenuItem.Checked = false;
//設(shè)置為不自動換行
richTextBox1.WordWrap = false;
}
}
// 【字體】菜單代碼
private void 選項(xiàng)OToolStripMenuItem_Click(object sender, EventArgs e)
{
fdlgNotepad.ShowColor = true;
if(fdlgNotepad.ShowDialog() == DialogResult.OK)
{
richTextBox1.SelectionColor = fdlgNotepad.Color;
richTextBox1.SelectionFont = fdlgNotepad.Font;
}
}
//************************************
// 【幫助】菜單代碼
//************************************
// 【關(guān)于】菜單代碼
private void 關(guān)于AToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("wky 編寫", "關(guān)于\"記事本\"", MessageBoxButtons.OK);
}
//***************************************
// 計(jì)時器控件的Tick事件代碼
//************************************
private void tmrNotepad_Tick(object sender, EventArgs e)
{
//獲取系統(tǒng)當(dāng)前時間,并顯示在狀態(tài)欄中
tssLbl2.Text = System.DateTime.Now.ToString();
}
private void 粘貼PToolStripButton_Click(object sender, EventArgs e)
{
richTextBox1.Paste();
}
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery結(jié)合C#實(shí)現(xiàn)上傳文件的方法
這篇文章主要介紹了jQuery結(jié)合C#實(shí)現(xiàn)上傳文件的方法,涉及C#文件上傳的相關(guān)技巧,需要的朋友可以參考下2015-04-04
Unity Shader實(shí)現(xiàn)2D水流效果
這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)2D水流效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05
探討Object轉(zhuǎn)為String的幾種簡易形式詳解
本篇文章是對Object轉(zhuǎn)為String的幾種簡易形式進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Unity UGUI的GridLayoutGroup網(wǎng)格布局組件使用詳解
這篇文章主要介紹了Unity UGUI的GridLayoutGroup網(wǎng)格布局組件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
C#訪問C++動態(tài)分配的數(shù)組指針(實(shí)例講解)
下面小編就為大家分享一篇C#訪問C++動態(tài)分配的數(shù)組指針(實(shí)例講解),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12
詳談C# 圖片與byte[]之間以及byte[]與string之間的轉(zhuǎn)換
下面小編就為大家?guī)硪黄斦凜# 圖片與byte[]之間以及byte[]與string之間的轉(zhuǎn)換。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02

