C#編寫一個簡單記事本功能
本文實例為大家分享了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表示文件是新建的,默認值為false*/
bool b = false;
/*布爾變量s用于判斷文件是否被保存 true 表示已經(jīng)被保存,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)
{
//若文件從磁盤打開并且修改了其中內(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)
{
//判斷當前文件是否是從磁盤打開,或者新建時文檔不為空,并且文件未被保存
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é)束程序運行
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)
{
//獲取系統(tǒng)當前時間,并顯示在狀態(tài)欄中
tssLbl2.Text = System.DateTime.Now.ToString();
}
private void 粘貼PToolStripButton_Click(object sender, EventArgs e)
{
richTextBox1.Paste();
}
}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持我們。
欄 目:C#教程
下一篇:C#構建樹形結(jié)構數(shù)據(jù)(全部構建,查找構建)
本文標題:C#編寫一個簡單記事本功能
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/5441.html
您可能感興趣的文章
- 01-10C#實現(xiàn)簡單的Login窗口實例
- 01-10C#實現(xiàn)多線程寫入同一個文件的方法
- 01-10Winform消除button按下出現(xiàn)的虛線簡單實現(xiàn)方法
- 01-10winform簡單緩存類實例
- 01-10C#一個簡單的定時小程序?qū)崿F(xiàn)代碼
- 01-10C#圓角窗體簡單實現(xiàn)方法
- 01-10C#使用Mutex簡單實現(xiàn)程序單實例運行的方法
- 01-10C#實現(xiàn)簡單合并word文檔的方法
- 01-10C#簡單實現(xiàn)子窗體向父窗體傳值的方法
- 01-10基于C#實現(xiàn)簡單離線注冊碼生成與驗證


閱讀排行
本欄相關
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻播放器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10C#中split用法實例總結(jié)
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 04-02jquery與jsp,用jquery


