在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#语言基础 → C# 仿记事本示例源码(可用作备注/书签)

C# 仿记事本示例源码(可用作备注/书签)

C#语言基础

下载此实例
  • 开发语言:C#
  • 实例大小:0.36M
  • 下载次数:16
  • 浏览次数:224
  • 发布时间:2019-03-13
  • 实例类别:C#语言基础
  • 发 布 人:48411296
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】

【实例截图】

from clipboard

【核心代码】

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace DotNetNotePad
{
    public partial class frmMain : Form
    {

        /* 定义变量 */
        public string filePath = null;                                                                          // 储存文件路径
        public string fileDataPath = "D:\\备注\\ssss.dat";         // 数据文件路径
        public bool IsTextChanged = false;                                                               // 表示文本框是否被改变
        // 打开文件格式
        public const string FileType = "文本文件(*.txt)|*.txt|配置文件(*.ini)|*.ini|脚本文件(*.js *.vbs *.lua *.cfg)|*.js;*.vbs;*.lua;*.cfg|源码文件(*.h *.cpp *.cs *.vbs *.frm *.mdl *.cls)|*.h;*.cpp;*.cs;*.vbs;*.frm;*.mdl;*.cls|所有文件(*.*)|*.*";

        public frmMain()
        {
            InitializeComponent();
        }

        private void 退出EToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void txtTextBox_TextChanged(object sender, EventArgs e)
        {
            stripSet_Tick(0, EventArgs.Empty);
            IsTextChanged = true;
        }

        private void 粘贴PToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // 粘贴
            txtTextBox.Paste();
        }

        private void 剪切TToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // 剪切
            txtTextBox.Cut();
        }

        private void 复制CToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // 复制
            txtTextBox.Copy();
        }

        private void 背景色BToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ColorDialog cd = new ColorDialog();                            // 实例化颜色选择框
            cd.Color = txtTextBox.ForeColor;                                 // 将文本框默认颜色改变为文本字体颜色 
            if (cd.ShowDialog() == DialogResult.OK)
            {
                txtTextBox.ForeColor = cd.Color;                             // 设置文本字体颜色
            }
        }

        private void 自动换行WToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // 自动换行
            if (!自动换行WToolStripMenuItem.Checked) { txtTextBox.ScrollBars = ScrollBars.Both; txtTextBox.WordWrap = false; } 
            else { txtTextBox.ScrollBars = ScrollBars.Vertical; txtTextBox.WordWrap = true; }
        }

        private void 字体FToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FontDialog fd = new FontDialog();                               // 实例化字体选择框
            fd.ShowColor = true;                                                   // 启动文字选择框的颜色功能
            fd.Font = txtTextBox.Font;                                          // 将字体框默认字体改变为文本字体
            fd.Color = txtTextBox.ForeColor;                                // 将字体框默认颜色改变为文本字体颜色 
            if (fd.ShowDialog() == DialogResult.OK)
            {
                // 设置字体
                txtTextBox.Font = fd.Font;
                txtTextBox.ForeColor = fd.Color;
            }
        }
//Downloads By http://www.veryhuo.com
        private void 背景色BToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            ColorDialog cd = new ColorDialog();
            cd.Color = txtTextBox.BackColor;
            if (cd.ShowDialog() == DialogResult.OK)
            {
                txtTextBox.BackColor = cd.Color;
            }
        }

        private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
        {
            QuestSaveText();

            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Title = "打开";
            ofd.Filter = FileType;
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                StreamReader sr = new StreamReader(ofd.FileName,Encoding.Default);
                filePath = ofd.FileName;
                this.Text = "备注"   "[读取中]";
                Application.DoEvents();
                txtTextBox.Text = sr.ReadToEnd();
                this.Text = "备注";
                sr.Close();
                IsTextChanged = false;
            }
        }

        private void 另存为AToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Title = "另存为";
            sfd.Filter = "文本文件(*.txt)|*.txt|配置文件(*.ini)|*.ini|所有文件(*.*)|*.*";
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                FileStream fs = new FileStream(sfd.FileName, FileMode.Create);
                StreamWriter sw = new StreamWriter(fs,Encoding.Default);
                sw.Write(txtTextBox.Text);
                sw.Close();
                fs.Close();
                IsTextChanged = false;
            }
        }

        private void 保存SToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (File.Exists(filePath) == true)
            {
                FileStream fs = new FileStream(filePath, FileMode.Create);
                StreamWriter sw = new StreamWriter(fs, Encoding.Default);
                sw.Write(txtTextBox.Text);
                sw.Close();
                fs.Close();
                IsTextChanged = false;
            }
            else
            {
                MessageBox.Show("保存失败, 路径为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void 新建NToolStripMenuItem_Click(object sender, EventArgs e)
        {
            QuestSaveText();
            this.Text = "备注";
            txtTextBox.Text = null;
            filePath = null;
            IsTextChanged = false;
            autosave();
        }
        private void QuestSaveText()
        {
            if (IsTextChanged == true && filePath != null)
            {
                // if (MessageBox.Show("是否保存该程序", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                //{
                保存SToolStripMenuItem_Click(1, EventArgs.Empty);
                //}
            }
            else if (IsTextChanged == true)
                {
                // if (IsTextChanged == true && MessageBox.Show("是否保存该程序", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                //{
                另存为AToolStripMenuItem_Click(1, EventArgs.Empty);
                //}
            }
        }

        private void 常用ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            txtTextBox.SelectAll();
        }

        private void 状态栏SToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!状态栏SToolStripMenuItem.Checked) { statusStrip.Visible = false; } else { statusStrip.Visible = true; }
        }

        private void stripSet_Tick(object sender, EventArgs e)
        {
            int index = txtTextBox.GetFirstCharIndexOfCurrentLine();
            int line = txtTextBox.GetLineFromCharIndex(index)   1;
            int col = txtTextBox.SelectionStart - index;
            toolStripStatusLabel2.Text = "时间: "   DateTime.Now.ToString("HH:mm:ss");
            toolStripStatusLabel3.Text = "行: "   txtTextBox.GetLineFromCharIndex(txtTextBox.Text.Length   1)   " 列: "   col;
            toolStripStatusLabel5.Text = "字数: "   txtTextBox.Text.Length;
        }

        private void frmMain_FormClosed(object sender, FormClosedEventArgs e)
        {
            QuestSaveText();
            IsTextChanged = false;
            SaveSetting();
        }

        private void 撤销ZToolStripMenuItem_Click(object sender, EventArgs e)
        {
            txtTextBox.Undo();
            txtTextBox.ClearUndo();
        }

        private void 删除LToolStripMenuItem_Click(object sender, EventArgs e)
        {
            txtTextBox.Paste("");
        }

        private void menuStrip_MouseEnter(object sender, EventArgs e)
        {
            if (filePath != null) { 保存SToolStripMenuItem.Enabled = true; } else { 保存SToolStripMenuItem.Enabled = false; }

            if (txtTextBox.CanUndo == true) { 撤销ZToolStripMenuItem.Enabled = true; } else { 撤销ZToolStripMenuItem.Enabled = false; }
            if (txtTextBox.SelectionLength == 0)
            {
                剪切TToolStripMenuItem.Enabled = false;
                复制CToolStripMenuItem.Enabled = false;
                删除LToolStripMenuItem.Enabled = false;
            }
            else
            {
                剪切TToolStripMenuItem.Enabled = true;
                复制CToolStripMenuItem.Enabled = true;
                删除LToolStripMenuItem.Enabled = true;
            }
            if (Clipboard.GetText() != null) { 粘贴PToolStripMenuItem.Enabled = true; } else { 粘贴PToolStripMenuItem.Enabled = false; }
        }

        private void 菜单MToolStripMenuItem_Click(object sender, EventArgs e)
        {
            menuStrip.Visible = !menuStrip.Visible;
        }

        private void 查找FToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmFindText fft = new frmFindText();
            fft.tb = txtTextBox;
            fft.Show(this);
        }

        private void 查找下一个NToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmFindText fft = new frmFindText();
            fft.tb = txtTextBox;
            fft.Show(this);
        }

        private void 关于备注AToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AboutBox ab = new AboutBox();
            ab.ShowDialog(this);
        }

        private void 替换RToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmReplace fr = new frmReplace();
            fr.tb = txtTextBox;
            fr.Show(this);
        }

        private void autosave()
        {
            if (autoSave.Enabled == true && filePath == null)
            {
                SaveFileDialog sfd = new SaveFileDialog();
                sfd.Title = "选择自动保存文件的路径";
                sfd.Filter = "文本文件(*.txt)|*.txt|配置文件(*.ini)|*.ini|所有文件(*.*)|*.*";
                if (sfd.ShowDialog() == DialogResult.OK)
                {
                    filePath = sfd.FileName;
                    this.Text = "备注 - "   sfd.FileName.Substring(sfd.FileName.LastIndexOf('\\')   1);
                }
                else
                {
                    MessageBox.Show("你没有选择自动保存的路径, 自动保存将被停止!","警告",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
                    自动保存AToolStripMenuItem.Checked = false;
                    autoSave.Enabled = false; 
                }
            }
        }

        private void autoSave_Tick(object sender, EventArgs e)
        {
            if (filePath != null)
            {
                FileStream fs = new FileStream(filePath, FileMode.Create);
                StreamWriter sw = new StreamWriter(fs, Encoding.Default);
                sw.Write(txtTextBox.Text);
                sw.Close();
                fs.Close();
                toolStripStatusLabel6.Text = string.Format("[自动保存: {0}]", DateTime.Now.ToString("HH:mm:ss"));
            }
        }

        private void txtTextBox_MouseDown(object sender, MouseEventArgs e)
        {
            frmFindText.startIndex = 0;
        }

        private void SaveSetting()
        {
            if (保存设置SToolStripMenuItem.Checked == true)
            {
                StreamWriter sw = new StreamWriter(fileDataPath, false);
                sw.Close();
            }

            if (File.Exists(fileDataPath))
            {
                StreamWriter sw = new StreamWriter(fileDataPath,true,Encoding.Default);
                // 存坐标和宽度
                sw.WriteLine(this.Location.X.ToString());
                sw.WriteLine(this.Location.Y.ToString());
                sw.WriteLine(this.Size.Width.ToString());
                sw.WriteLine(this.Size.Height.ToString());
                // 存字体样式
                sw.WriteLine(txtTextBox.Font.Name.ToString());
                sw.WriteLine(txtTextBox.Font.Size.ToString());
                sw.WriteLine(txtTextBox.Font.Bold.ToString());
                sw.WriteLine(txtTextBox.Font.Italic.ToString());
                sw.WriteLine(txtTextBox.Font.Strikeout.ToString());
                sw.WriteLine(txtTextBox.Font.Underline.ToString());
                // 存字体颜色
                sw.WriteLine(txtTextBox.ForeColor.R);
                sw.WriteLine(txtTextBox.ForeColor.G);
                sw.WriteLine(txtTextBox.ForeColor.B);
                // 存背景颜色
                sw.WriteLine(txtTextBox.BackColor.R);
                sw.WriteLine(txtTextBox.BackColor.G);
                sw.WriteLine(txtTextBox.BackColor.B);
                sw.Close();
            }
        }

        private void LoadSetting()
        {
            if (File.Exists(fileDataPath))
            {
                // 数据文件存在,开始读取
                StreamReader sr = new StreamReader(fileDataPath,Encoding.Default);
                try
                {
                    // 读坐标和宽度
                    int X = Convert.ToInt32(sr.ReadLine());
                    int Y = Convert.ToInt32(sr.ReadLine());
                    int W = Convert.ToInt32(sr.ReadLine());
                    int H = Convert.ToInt32(sr.ReadLine());
                    // 读字体样式
                    string fn = sr.ReadLine().ToString();
                    float fs = Convert.ToSingle(sr.ReadLine().ToString());
                    string isBold = sr.ReadLine().ToString();
                    string isItalic = sr.ReadLine().ToString();
                    string isStrikeout = sr.ReadLine().ToString();
                    string isUnderline = sr.ReadLine().ToString();
                    // 读字体颜色
                    int R = Convert.ToInt32(sr.ReadLine());
                    int G = Convert.ToInt32(sr.ReadLine());
                    int B = Convert.ToInt32(sr.ReadLine());
                    // 读背景颜色
                    int BR = Convert.ToInt32(sr.ReadLine());
                    int BG = Convert.ToInt32(sr.ReadLine());
                    int BB = Convert.ToInt32(sr.ReadLine());
                    // 开始应用设置
                    sr.Close();
                    保存设置SToolStripMenuItem.Checked = true;
                    this.Location = new Point(X, Y);
                    this.Size = new Size(W, H);
                    txtTextBox.Font = new Font(fn, fs);
                    if (isBold == "True") { txtTextBox.Font = new Font(txtTextBox.Font, txtTextBox.Font.Style | FontStyle.Bold); }
                    if (isItalic == "True") { txtTextBox.Font = new Font(txtTextBox.Font, txtTextBox.Font.Style | FontStyle.Italic); }
                    if (isStrikeout == "True") { txtTextBox.Font = new Font(txtTextBox.Font, txtTextBox.Font.Style | FontStyle.Strikeout); }
                    if (isUnderline == "True") { txtTextBox.Font = new Font(txtTextBox.Font, txtTextBox.Font.Style | FontStyle.Underline); }
                    txtTextBox.BackColor = Color.FromArgb(BR, BG, BB);
                    txtTextBox.ForeColor = Color.FromArgb(R, G, B);
                }
                catch
                {
                    /* 当文件读取失败,提示错误,并重置数据文件 */
                    sr.Close();
                    MessageBox.Show("数据文件读取失败, 所有已保存的设置将会被删除!", "备注", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    StreamWriter sw = new StreamWriter(fileDataPath, false);
                    sw.Close();
                }
            }
        }

        private void frmMain_Load(object sender, EventArgs e)
        {
            LoadSetting();
        }

        private void CommandLoadFile()
        {
            /* 从命令行参数中获取路径并载入 */
            string comPath = TextHandle.ComPath();
            if (comPath != "NULL")
            {
                StreamReader sr = new StreamReader(comPath, Encoding.Default);
                filePath = comPath;
                this.Text = "书签"   "[读取中]";
                Application.DoEvents();
                txtTextBox.Text = sr.ReadToEnd();
                this.Text = "书签";
                IsTextChanged = false;
                sr.Close();
            }
        }

        private void 保存设置SToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (保存设置SToolStripMenuItem.Checked == true)
            {
                StreamWriter sw = new StreamWriter(fileDataPath, false);
                sw.Close();
                SaveSetting();
            }
            else
            {
                if (File.Exists(fileDataPath)) { File.Delete(fileDataPath); }
            }
        }

        private void frmMain_Shown(object sender, EventArgs e)
        {
            if (File.Exists(fileDataPath)) { 保存设置SToolStripMenuItem.Checked = true; } else { 保存设置SToolStripMenuItem.Checked = false; }
            CommandLoadFile();
        }

        private void 自动保存AToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (!自动保存AToolStripMenuItem.Checked) { autoSave.Enabled = false; } else { autoSave.Enabled = true; autosave(); }
        }

        private void 秒ToolStripMenuItem2_Click(object sender, EventArgs e)
        {
            秒ToolStripMenuItem2.Checked = true;
            秒ToolStripMenuItem3.Checked = false;
            分钟ToolStripMenuItem3.Checked = false;
            分钟ToolStripMenuItem4.Checked = false;
            分钟ToolStripMenuItem5.Checked = false;
            自定义ToolStripMenuItem.Checked = false;
            autoSave.Interval = 15000;      // 15秒
        }

        private void 秒ToolStripMenuItem3_Click(object sender, EventArgs e)
        {
            秒ToolStripMenuItem2.Checked = false;
            秒ToolStripMenuItem3.Checked = true;
            分钟ToolStripMenuItem3.Checked = false;
            分钟ToolStripMenuItem4.Checked = false;
            分钟ToolStripMenuItem5.Checked = false;
            自定义ToolStripMenuItem.Checked = false;
            autoSave.Interval = 30000;      // 30秒
        }

        private void 分钟ToolStripMenuItem3_Click(object sender, EventArgs e)
        {
            秒ToolStripMenuItem2.Checked = false;
            秒ToolStripMenuItem3.Checked = false;
            分钟ToolStripMenuItem3.Checked = true;
            分钟ToolStripMenuItem4.Checked = false;
            分钟ToolStripMenuItem5.Checked = false;
            自定义ToolStripMenuItem.Checked = false;
            autoSave.Interval = 600000;     // 1分钟
        }

        private void 分钟ToolStripMenuItem4_Click(object sender, EventArgs e)
        {
            秒ToolStripMenuItem2.Checked = false;
            秒ToolStripMenuItem3.Checked = false;
            分钟ToolStripMenuItem3.Checked = false;
            分钟ToolStripMenuItem4.Checked = true;
            分钟ToolStripMenuItem5.Checked = false;
            自定义ToolStripMenuItem.Checked = false;
            autoSave.Interval = 120000;     // 2分钟
        }

        private void 分钟ToolStripMenuItem5_Click(object sender, EventArgs e)
        {
            秒ToolStripMenuItem2.Checked = false;
            秒ToolStripMenuItem3.Checked = false;
            分钟ToolStripMenuItem3.Checked = false;
            分钟ToolStripMenuItem4.Checked = false;
            分钟ToolStripMenuItem5.Checked = true;
            自定义ToolStripMenuItem.Checked = false;
            autoSave.Interval = 300000;     // 5分钟
        }

        private void 自定义ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            秒ToolStripMenuItem2.Checked = false;
            秒ToolStripMenuItem3.Checked = false;
            分钟ToolStripMenuItem3.Checked = false;
            分钟ToolStripMenuItem4.Checked = false;
            分钟ToolStripMenuItem5.Checked = false;
            自定义ToolStripMenuItem.Checked = true;
            SetAutoSaveTimer sast = new SetAutoSaveTimer();
            sast.cmTime = autoSave;
            sast.ShowDialog(this);
        }

        private void 时间ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            txtTextBox.SelectedText = DateTime.Now.ToString("HH:mm:ss");
        }

        private void 日期ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            txtTextBox.SelectedText = DateTime.Now.ToString("yyyy-MM-dd");
        }

        private void 星期ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            /* 判断当前的星期并插入到光标后 */
            txtTextBox.SelectedText = TextHandle.TodayWeek();
        }

        private void 时间日期ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            txtTextBox.SelectedText = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
        }

        private void 年ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            txtTextBox.SelectedText = DateTime.Now.ToString("yyyy");
        }

        private void 月ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            txtTextBox.SelectedText = DateTime.Now.ToString("MM");
        }

        private void 日ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            txtTextBox.SelectedText = DateTime.Now.ToString("dd");
        }

        private void 过滤非法字符ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            txtTextBox.Text = TextHandle.SensitiveShield(txtTextBox.Text);
        }

        private void menuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }
    }
}

标签:

实例下载地址

C# 仿记事本示例源码(可用作备注/书签)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警