使用winform c#写一个记事本

记事本简介

本次写的是一个记事本功能的winform窗体应用,其中功能包括文件保存另存为,修改字体,复制粘贴等等功能。

以下是MenuStrip控件的相关属性

Text属性

Name属性

ShortcutKeys属性

(快捷键)

ShowShortcutKeys属性

文件(&F)

tsmiFile

None

新建(&N)

tsmiNew

Ctrl+N

True

打开(&O)

tsmiOpen

Ctrl+O

True

保存(&S)

tsmiSave

Ctrl+S

True

另存为(&A)

tsmiSaveAs

None

分隔符(用“-”来分隔)

退出(&X)

tsmiClose

None

Text属性

Name属性

ShortcutKeys属性

ShowShortcutKeys属性

编辑(&E)

tsmiEdit

None

撤销(&U)

tsmiUndo

Ctrl+Z

True

分隔符

复制(&C)

tsmiCopy

Ctrl+C

True

剪切(&T)

tsmiCut

Ctrl+X

True

粘贴(&P)

tsmiPaste

Ctrl+V

True

分隔符

全选(&A)

tsmiSelectAll

Ctrl+A

True

日期(&D)

tsmiDate

F5

True

Text属性

Name属性

Check属性

格式(&O)

tsmiFormat

False

自动换行(&W)

tsmiAuto

True

字体(&F)

tsmiFont

False

Text属性

Name属性

Checked属性

查看(&V)

tsmiView

False

工具栏(&T)

tsmiToolStrip

True

状态栏(&S)

tsmiStatusStrip

True

Text属性

Name属性

帮助(&H)

tsmiHelp

关于记事本(&A)

tsmiAbout

记事本大概界面 

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 真正的记事本
{
    public partial class frmNotepad : Form
    {
        bool b = false;
        bool s = true;
        public frmNotepad()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void tssLbl1_Click(object sender, EventArgs e)
        {

        }

        private void rtxtNotepad_TextChanged(object sender, EventArgs e)
        {
            s = false;
        }

        private void tsmiNew_Click(object sender, EventArgs e)
        {
            if (b == true || rtxtNotepad.Text.Trim() != "")
            {
                if (s == false) 
                {
                    string result;
                    result = MessageBox.Show("文件未保存,是否保存?","保存文件",MessageBoxButtons.YesNoCancel).ToString();
                    switch(result) {
                        case "Yes":
                            if (b == true)
                            {
                                rtxtNotepad.SaveFile(odlgNotepad.FileName);
                            }
                            else if (sdlgNotepad.ShowDialog() == DialogResult.OK) {
                                rtxtNotepad.SaveFile(sdlgNotepad.FileName);
                            }
                            s = true;
                            rtxtNotepad.Text = "";
                            break;
                        case "No":
                            b = false;
                            rtxtNotepad.Text = "";
                            break;
                    }
                }
            }
        }

        private void tsmiOpen_Click(object sender, EventArgs e)
        {
            if (b == true || rtxtNotepad.Text.Trim() != "")
            {
                if (s == false)
                {
                    string result;
                    result = MessageBox.Show("文件尚未保存,是否保存?",
                        "保存文件", MessageBoxButtons.YesNoCancel).ToString();
                    switch (result)
                    {
                        case "Yes":
                            if (b == true)
                            {
                                rtxtNotepad.SaveFile(odlgNotepad.FileName);
                            }
                            else if (sdlgNotepad.ShowDialog() == DialogResult.OK)
                            {
                                rtxtNotepad.SaveFile(sdlgNotepad.FileName);
                            }
                            s = true;
                            break;
                        case "No":
                            b = false;
                            rtxtNotepad.Text = "";
                            break;
                    }
                }
            }
            odlgNotepad.RestoreDirectory = true;
            if ((odlgNotepad.ShowDialog() == DialogResult.OK) && odlgNotepad.FileName != "")
            {
                rtxtNotepad.LoadFile(odlgNotepad.FileName);
                b = true;
            }
            s = true;
        }

        private void tsmiSave_Click(object sender, EventArgs e)
        {
            if (b == true && rtxtNotepad.Modified == true)
            {
                rtxtNotepad.SaveFile(odlgNotepad.FileName);
                s = true;
            }
            else if (b == false && rtxtNotepad.Text.Trim() != "" &&
                sdlgNotepad.ShowDialog() == DialogResult.OK)
            {
                rtxtNotepad.SaveFile(sdlgNotepad.FileName);
                s = true;
                b = true;
                odlgNotepad.FileName = sdlgNotepad.FileName;
            }

        }

        private void tsmiSaveAs_Click(object sender, EventArgs e)
        {
            if (sdlgNotepad.ShowDialog() == DialogResult.OK)
            {
                rtxtNotepad.SaveFile(sdlgNotepad.FileName);
                s = true;
            }

        }

        private void tsmiClose_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void 撤销UToolStripMenuItem_Click(object sender, EventArgs e)
        {
            rtxtNotepad.Undo();
        }

        private void tsmiCopy_Click(object sender, EventArgs e)
        {
            rtxtNotepad.Copy();
        }

        private void tsmiCut_Click(object sender, EventArgs e)
        {
            rtxtNotepad.Cut();
        }

        private void tsmiPaste_Click(object sender, EventArgs e)
        {
            rtxtNotepad.Paste();
        }

        private void tsmiSelectAll_Click(object sender, EventArgs e)
        {
            rtxtNotepad.SelectAll();
        }

        private void tsmiDate_Click(object sender, EventArgs e)
        {
            rtxtNotepad.AppendText(System.DateTime.Now.ToString());
        }

        private void tsmiAuto_Click(object sender, EventArgs e)
        {
            if (tsmiAuto.Checked == false)
            {
                tsmiAuto.Checked = true;            
                rtxtNotepad.WordWrap = true;      
            }
            else
            {
                tsmiAuto.Checked = false;
                rtxtNotepad.WordWrap = false;
            }

        }

        private void tsmiFont_Click(object sender, EventArgs e)
        {
            fdlgNotepad.ShowColor = true;
            if (fdlgNotepad.ShowDialog() == DialogResult.OK)
            {
                rtxtNotepad.SelectionColor = fdlgNotepad.Color;
                rtxtNotepad.SelectionFont = fdlgNotepad.Font;
            }

        }

        private void tsmiToolStrip_Click(object sender, EventArgs e)
        {
            Point point;
            if (tsmiToolStrip.Checked == true)
            {
                point = new Point(0, 24);
                tsmiToolStrip.Checked = false;
                tlsNotepad.Visible = false;
                rtxtNotepad.Location = point;
                rtxtNotepad.Height += tlsNotepad.Height;
            }
            else
            {
                point = new Point(0, 49);
                tsmiToolStrip.Checked = true;
                tlsNotepad.Visible = true;
                rtxtNotepad.Location = point;
                rtxtNotepad.Height -= tlsNotepad.Height;
            }

        }

        private void tsmiStatusStrip_Click(object sender, EventArgs e)
        {

        }

        private void tsmiStatusStrip_Click_1(object sender, EventArgs e)
        {
            if (tsmiStatusStrip.Checked == true)
            {
                tsmiStatusStrip.Checked = false;
                stsNotepad.Visible = false;
                rtxtNotepad.Height += stsNotepad.Height;
            }
            else
            {
                tsmiStatusStrip.Checked = true;
                stsNotepad.Visible = true;
                rtxtNotepad.Height -= stsNotepad.Height;
            }

        }

        private void tsmiAbout_Click(object sender, EventArgs e)
        {
            frmAbout ob_FrmAbout = new frmAbout();
            ob_FrmAbout.Show();
        }

        private void tssLbl2_Click(object sender, EventArgs e)
        {

        }

        private void tmrNotepad_Tick(object sender, EventArgs e)
        {
            tssLbl2.Text = System.DateTime.Now.ToString();
        }
        private void frmNotepad_SizeChanged(object sender, EventArgs e)
        {
            frmNotepad ob_frmNotepad = new frmNotepad();
            tssLbl1.Width = this.Width / 2 - 12;
            tssLbl2.Width = tssLbl1.Width;
        }

        private void stsNotepad_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }
    }
}

心得:

  1. 学习基本的C#编程知识 在开始编写记事本应用程序之前,我需要学习基本的C#编程知识,例如数据类型、循环语句、条件语句和面向对象编程概念等。这些基础知识对于编写任何类型的C#应用程序都是必要的。

  2. 掌握WinForms控件 掌握WinForms控件是编写记事本应用程序的关键。我需要了解如何使用文本框、标签、按钮、菜单和工具栏等控件,并将它们组合在一起创建一个完整的用户界面。

  3. 熟悉文本处理操作 一个记事本应用程序的核心是文本处理。因此,我需要熟悉如何读取和写入文本文件、搜索和替换文本、插入和删除文本等操作。这些操作是编写记事本应用程序的基础。

  4. 设计和美化用户界面 一个好的用户界面可以让我的应用程序更加吸引人并提高用户体验。因此,我需要考虑设计和美化我的用户界面。我可以使用图标、颜色、字体和布局等元素来增强用户界面的可读性和可用性。

  5. 测试和调试我的应用程序 在完成我的应用程序之后,测试和调试是非常重要的。我需要测试我的应用程序的各种功能,并确保它们可以正常工作。如果发现问题,我需要使用调试工具来解决它们。

总之,使用C#编写记事本WinForm是一个非常有趣和有挑战性的任务。通过学习基本的编程知识、掌握WinForms控件、熟悉文本处理操作、设计和美化用户界面以及测试和调试我的应用程序,我可以提高自己的编程技能和解决问题的能力。

源码地址:gitee

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是WinForm记事本的介绍和演示: WinForm记事本一个Windows应用程序,它可以实现文本的编辑、存储和格式设置等功能。它使用了MenuStrip(菜单)、ToolStrip(工具栏)、RichTextBox(高级文本框)和StatusStrip(状态栏控件)等控件,同时也使用了CommonDialog(公共对话框)实现对文本的存取、格式设置等操作。 该记事本具有以下功能: 1. 文件的新建、打开、保存功能; 2. 文字的复制、粘贴、删除功能; 3. 字体类型、格式的设置功能; 4. 查看日期时间等功能; 5. 用户可以根据需要显示或者隐藏工具栏和状态栏。 以下是WinForm记事本的界面设计步骤: 1. 创建一个新项目; 2. 在窗体上添加MenuStrip、ToolStrip、RichTextBox和StatusStrip等控件; 3. 设置控件的属性,例如菜单项、工具栏按钮、文本框的大小、字体、颜色等; 4. 编代码实现控件的功能,例如打开、保存、复制、粘贴、删除、字体设置、日期时间显示等。 以下是WinForm记事本的演示代码: ```csharp using System; using System.Windows.Forms; namespace WinFormNotepad { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void newToolStripMenuItem_Click(object sender, EventArgs e) { // 新建文件 } private void openToolStripMenuItem_Click(object sender, EventArgs e) { // 打开文件 } private void saveToolStripMenuItem_Click(object sender, EventArgs e) { // 保存文件 } private void cutToolStripMenuItem_Click(object sender, EventArgs e) { // 剪切文本 } private void copyToolStripMenuItem_Click(object sender, EventArgs e) { // 复制文本 } private void pasteToolStripMenuItem_Click(object sender, EventArgs e) { // 粘贴文本 } private void deleteToolStripMenuItem_Click(object sender, EventArgs e) { // 删除文本 } private void fontToolStripMenuItem_Click(object sender, EventArgs e) { // 设置字体 } private void boldToolStripMenuItem_Click(object sender, EventArgs e) { // 设置加粗 } private void italicToolStripMenuItem_Click(object sender, EventArgs e) { // 设置斜体 } private void underlineToolStripMenuItem_Click(object sender, EventArgs e) { // 设置下划线 } private void dateTimeToolStripMenuItem_Click(object sender, EventArgs e) { // 显示日期时间 } private void toolStripButton1_Click(object sender, EventArgs e) { // 新建文件 } private void toolStripButton2_Click(object sender, EventArgs e) { // 打开文件 } private void toolStripButton3_Click(object sender, EventArgs e) { // 保存文件 } private void toolStripButton4_Click(object sender, EventArgs e) { // 剪切文本 } private void toolStripButton5_Click(object sender, EventArgs e) { // 复制文本 } private void toolStripButton6_Click(object sender, EventArgs e) { // 粘贴文本 } private void toolStripButton7_Click(object sender, EventArgs e) { // 删除文本 } private void toolStripButton8_Click(object sender, EventArgs e) { // 设置字体 } private void toolStripButton9_Click(object sender, EventArgs e) { // 显示日期时间 } } } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值