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


前言

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做的一个简单版本记事本。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是C# WinForm中编写一个简单记事本的示例代码: 首先,在你的WinForm中添加以下控件: - 一个MenuStrip控件,用于添加文件菜单、编辑菜单和帮助菜单。 - 一个RichTextBox控件,用于输入和显示文本内容。 接下来,添加以下代码来处理菜单项单击事件: ```csharp // 文件菜单 private void newToolStripMenuItem_Click(object sender, EventArgs e) { // 新建文件 richTextBox1.Text = ""; } private void openToolStripMenuItem_Click(object sender, EventArgs e) { // 打开文件 OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; if (openFileDialog.ShowDialog() == DialogResult.OK) { string filePath = openFileDialog.FileName; richTextBox1.LoadFile(filePath, RichTextBoxStreamType.PlainText); } } private void saveToolStripMenuItem_Click(object sender, EventArgs e) { // 保存文件 SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; if (saveFileDialog.ShowDialog() == DialogResult.OK) { string filePath = saveFileDialog.FileName; richTextBox1.SaveFile(filePath, RichTextBoxStreamType.PlainText); } } private void exitToolStripMenuItem_Click(object sender, EventArgs e) { // 退出应用 Application.Exit(); } // 编辑菜单 private void cutToolStripMenuItem_Click(object sender, EventArgs e) { // 剪切 richTextBox1.Cut(); } private void copyToolStripMenuItem_Click(object sender, EventArgs e) { // 复制 richTextBox1.Copy(); } private void pasteToolStripMenuItem_Click(object sender, EventArgs e) { // 粘贴 richTextBox1.Paste(); } private void selectAllToolStripMenuItem_Click(object sender, EventArgs e) { // 全选 richTextBox1.SelectAll(); } // 帮助菜单 private void aboutToolStripMenuItem_Click(object sender, EventArgs e) { // 关于 MessageBox.Show("简单记事本 v1.0", "关于"); } ``` 最后,添加以下代码来处理窗体加载事件: ```csharp private void Form1_Load(object sender, EventArgs e) { // 设置窗体标题 this.Text = "简单记事本"; // 设置RichTextBox控件的字体和大小 richTextBox1.Font = new Font("Consolas", 12); } ``` 这样,你就可以编写一个简单记事本应用了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值