C#实现多功能记事本

这篇博客详细介绍了如何使用C#开发一个多功能记事本,包括MenuStrip、ToolStrip、RichTextBox和StatusStrip等控件的使用,以及OpenFileDialog、SaveFileDialog等功能的实现,涵盖了文件操作、编辑、格式设置等常见功能。
摘要由CSDN通过智能技术生成

一、简述

  记事本是Windows系统下非常常用的软件。通过C#实现多功能记事本,从中熟悉MenuStrip(菜单)、ToolStrip(工具栏)、RichTextBox(高级文本框)和StatusStrip(状态栏控件)等控件的使用,以及如何使用CommonDialog(公共对话框)实现对文本的存取、格式设置等操作。

二、记事本页面设计

------VS2019

  新建一个Windows窗体应用程序,并命名为“Notepad”;更改窗体名称,单击窗体→右下角属性→text修改为“记事本”。

控件类型 控件名称 属性 设置结果
Form Form1 Name Form1
Text/StartPosition/Size 记事本/CenterScreen/600,450

  新建好“Notepad”项目后,在窗体上放置以下控件(各1个):
MenuStrip、ToolStrip、RichTextBox、StatusStrip、OpenFileDialog、SaveFileDialog、FontDialog、Timer

1、MenuStrip

  横向依次输入【文件(F)】、【编辑(E)】、【格式(O)】、【查看(V)】和【帮助(H)】如下图所示
在这里插入图片描述

Text属性 Name属性 ShortcutKeys属性 ShowShortcutKeys属性 Checked属性
文件(&F) File None
新建(&N) New Ctrl+N True
打开(&O) Open Ctrl+O True
保存(&S) Save Ctrl+S True
另存为(&A) SaveAs None
分隔符(用“-”来分隔)
退出(&X) Close None
Text属性 Name属性 ShortcutKeys属性 ShowShortcutKeys属性 Checked属性
编辑(&E) Edit None True
撤销(&U) Undo Ctrl+Z True
分隔符(用“-”来分隔)
复制(&C) Copy Ctrl+C True
剪切(&T) Cut Ctrl+X True
粘贴(&V) Paste Ctrl+V True
分隔符(用“-”来分隔)
全选(&A) SelectAll Ctrl+A True
日期(&D) Date None F5 True
Text属性 Name属性 ShortcutKeys属性 ShowShortcutKeys属性 Checked属性
格式(&O) Format False
自动换行(&W) Auto True
字体(&F) Font False
Text属性 Name属性 ShortcutKeys属性 ShowShortcutKeys属性 Checked属性
查看(&V) View False
工具栏(&T) ToolStrip True
状态栏(&S) StatusStrip True
Text属性 Name属性 ShortcutKeys属性 ShowShortcutKeys属性 Checked属性
帮助(&H) Help
关于记事本(&A) About

2、ToolStrip

  将ToolStrip控件拖入窗体后,右击工具栏–>插入标准项,同时可编辑标准项,这里只展示以下功能(新建,打开,保存,剪切,粘贴,复制)。

3、RichTextBox

  将RichTextBox控件拖入窗体后,修改Anchor属性为“Top,Bottom,Left,Right”,使其随着窗体大小变化而变化。

4、StatusStrip

  将StatusStrip控件拖入窗体后,修改Dock属性为“Bottom”,再修改Anchor属性为“Bottom,Left,Right”。然后右击窗体中的StatusStrip控件打开项集合编辑器,点击添加按钮,依次添加4个StatusLabel,分别命名为“CursorPosition”、“InterfaceRatio”、“CodingFormat”、“DateTime”,
接着依次修改Text属性为“光标定位”,“界面比例”,“编码格式”,“日期时间”。

5、OpenFileDialog

  将OpenFileDialog控件拖入窗体后,修改Filter属性为“文本文件|*.txt|所有文件|*.*”。

6、SaveFileDialog

  将SaveFileDialog控件拖入窗体后,修改Filter属性为“文本文件|*.txt”。

7、FontDialog

  将FontDialog控件拖入窗体,可不做修改。

8、Timer

  将Timer控件拖入窗体后,修改Enabled属性为“True”,Interval属性为“1000”,表示1秒种触发一次Tick事件,即1秒钟改变一次时钟。
在这里插入图片描述

三、代码实现

  在实现各功能前,需在代码通用段声明两个bool型公共变量,“isOpen”用于判断文件是新建的还是从磁盘打开的,“isSave”用于判断文件是否被保存。

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

namespace Notepad
{
   
    public partial class Form1 : Form
    {
   
        bool isOpen = false;

        bool isSave = false;

        public Form1()
        {
   
            InitializeComponent();
        }

		private void Form1_Load(object sender, EventArgs e)
        {
   

        }
     }
}

(1)RichTextBox

  当RichTextBox中的文本发生改变后,应当设置布尔变量“isSave”的值为false,表示文件未保存。

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
   
	isSave = false;
}

(2)MenuStrip

  记事本绝大部分内容都由菜单来完成,以下通过代码分别实现文件(F)、编辑(E)、格式(O)、查看(V)、帮助(H)五大菜单项。

1、【文件】菜单

  完成文件的新建、打开、保存、另存为功能,以及退出记事本程序。

(1)【新建】菜单项

  单击该菜单项时新建一个空白文档,首先判断文件是从磁盘打开的还是新建的,若从磁盘打开则将isOpen设为“true”,否则设为“false”。每次保存文件后,都要将前面isSave设为“true”,表示文件已经被保存。
  单击新建菜单时,如果当前文件是从磁盘打开的,并且已经过修改,则按OpenFileDialog控件的路径来保存文件。如果是新建的文件且内容不为空,则用SaveFileDialog控件来保存文件。

		private void New_Click(object sender, EventArgs e)
        {
   
            if (isOpen == true || richTextBox1.Text.Trim() != "")
            {
   
                // 若文件未保存
                if (isSave == false)
       
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值