43【WinForm案例】WinForm做一个简单记事本

简介: WinForm使用C#语言做一个简单的记事本,满足加载、保存文件,编辑文本、修改文本字体和颜色功能。

前言

WinForm使用C#语言做一个简单的记事本,满足加载、保存文件,编辑文本、修改文本字体和颜色功能。


一、运行使用效果

在这里插入图片描述

二、界面设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • menuscript控件
  • ToolScriptMenuItem
  • RichTextBox

msMain、tsmiFile、tsmiOpen、tsmiOpenFile、tsmiOpenDirectory、tsmiSave、tsmiEdit、tsmiBackColor、tsmiFont、tsmiAbout、rtbEditor

三、代码

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 NotePadForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "文本文件(*.txt)|*.txt|富文本文件(*.rtf)|*.rtf";
            
            saveFileDialog1.Title = "另存为";
            saveFileDialog1.Filter = "文本文件(*.txt)|*.txt|富文本文件(*.rtf)|*.rtf";
        }

        //打开文件
        private void tsmiOpenFile_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    string fileName = openFileDialog1.FileName;
                    if (fileName.EndsWith(".txt", true, null))
                    {
                        rtbEditor.LoadFile(fileName, RichTextBoxStreamType.PlainText);
                    }
                    else
                    {
                        rtbEditor.LoadFile(fileName, RichTextBoxStreamType.RichText);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

        //打开文件夹
        private void tsmiOpenDirectory_Click(object sender, EventArgs e)
        {
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    openFileDialog1.InitialDirectory = folderBrowserDialog1.SelectedPath;
                    saveFileDialog1.InitialDirectory = folderBrowserDialog1.SelectedPath;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

        //保存文件
        private void tsmiSave_Click(object sender, EventArgs e)
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    if (saveFileDialog1.FileName.EndsWith("", true, null))
                    {
                        rtbEditor.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.PlainText);
                    }
                    else
                    {
                        rtbEditor.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                } 
            }
        }

        //设置背景颜色
        private void tsmiBackColor_Click(object sender, EventArgs e)
        {
            colorDialog1.Color = rtbEditor.SelectionBackColor;
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    rtbEditor.SelectionBackColor = colorDialog1.Color;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

        //更改字体
        private void tsmiFont_Click(object sender, EventArgs e)
        {
            fontDialog1.Font = rtbEditor.SelectionFont;
            fontDialog1.Color = rtbEditor.SelectionColor;
            if (fontDialog1.ShowDialog() == DialogResult.OK)
            {
                rtbEditor.SelectionFont = fontDialog1.Font;
                rtbEditor.SelectionColor = fontDialog1.Color;
            }
        }

        private void tsmiAbout_Click(object sender, EventArgs e)
        {
            AboutForm about = new AboutForm();
            about.ShowDialog();
        }

        private void tsmiEdit_DropDownOpening(object sender, EventArgs e)
        {
            if (rtbEditor.SelectionLength == 0)
            {
                tsmiBackColor.Enabled = false;
                tsmiFont.Enabled = false;
            }
            else
            {
                tsmiBackColor.Enabled = true;
                tsmiFont.Enabled = true;
            }
        }
    }
}

总结

WinForm做的一个简单版本记事本。

目录
相关文章
|
移动开发 前端开发 JavaScript
从零开始学习前端开发:入门指南
本文将介绍从零开始学习前端开发的入门指南。通过学习HTML、CSS和JavaScript等基础知识,读者将了解前端开发的基本概念和工具,并学会如何构建简单的网页应用程序。无论您是初学者还是有一定经验的开发人员,本文都将帮助您打下坚实的前端开发基础。
|
C# 图形学
C# winform嵌入unity3D
  最近做项目需要winform嵌入unity的功能,由于完全没接触过这类嵌入的于是在网上搜,有一种方法是UnityWebPlayer插件,也开始琢磨了一段时间,不过一会发现在5.4版本以后这个东西就被淘汰了,所以果断放弃。
4895 0
|
消息中间件 安全 API
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
SendMessage/PostMessage API 可以实现发送系统消息,这些消息可以定义为常见的鼠标或键盘事件、数据的发送等各种系统操作......
8881 1
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
|
10月前
|
人工智能 自然语言处理 数据挖掘
从幻觉到精准:RAG如何重塑AI对话的可靠性
从幻觉到精准:RAG如何重塑AI对话的可靠性
683 111
|
存储 移动开发 小程序
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
基于开源技术栈构建的校园圈子系统小程序,整合社交与生活服务功能,涵盖兴趣圈子、私信聊天、资料共享、二手交易、兼职跑腿等六大核心模块。通过多端账号同步(微信公众号/小程序/H5),实现数据实时交互,满足学生群体的多元化需求。项目精准锚定校园市场,以“社交+服务”双轮驱动,提供一站式解决方案,支持快速部署与多校区运营,同时具备广告、佣金、会员等多元变现能力,是打造校园生态的理想工具。
1689 3
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
|
Ubuntu Linux 网络安全
如何在Linux中更改主机名?修改主机名最新方法
本期教程将指导您如何在Linux系统中更改主机名。主机名是Linux系统的常用功能,用于识别服务器,帮助区分不同服务器,并与网络进程和其他应用程序协同工作。教程涵盖显示当前主机名的方法(通过`hostname`命令),以及在CentOS 7、Debian 9和Ubuntu 16.04及以上版本中更改主机名的步骤(使用`hostnamectl set-hostname`命令)。对于其他Linux版本,可编辑`/etc/hostname`文件实现更改。记得重启相关服务或服务器以使更改生效!
3143 12
|
存储 Java 关系型数据库
ssm150旅游网站的设计与实现+jsp(文档+源码)_kaic
本旅游网站基于现代经济快节奏发展和信息化技术的升级,采用SSM框架、Java语言及Mysql数据库开发。它实现了景点、新闻、酒店、飞机票和火车票管理等功能,帮助管理者高效处理大量数据信息,提升工作效率。系统界面简洁美观,功能布局合理,同时提供了数据安全解决方案,确保信息的安全性和可靠性。该网站不仅提高了事务处理效率,还实现了数据的整体化、规范化与自动化管理。关键词:旅游网站;SSM框架;Mysql;自动化。
|
前端开发 数据库
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
文本----富文本数据如何存入到数据库当中,解决方法,看其他大佬写的文章
|
安全 API 网络架构
Python中哪个框架最适合做API?
本文介绍了Python生态系统中几个流行的API框架,包括Flask、FastAPI、Django Rest Framework(DRF)、Falcon和Tornado。每个框架都有其独特的优势和适用场景。Flask轻量灵活,适合小型项目;FastAPI高性能且自动生成文档,适合需要高吞吐量的API;DRF功能强大,适合复杂应用;Falcon高性能低延迟,适合快速API开发;Tornado异步非阻塞,适合高并发场景。文章通过示例代码和优缺点分析,帮助开发者根据项目需求选择合适的框架。
3449 0
|
机器学习/深度学习 文字识别 C#
C#使用PaddleOCR进行图片文字识别✨
C#使用PaddleOCR进行图片文字识别✨
1790 0