C#作业Notepad制作

废话少说,上源码

跟着老师教的做,简直有手就行。

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 textbook
{
    public partial class FirmNotepad : Form
    {
        bool b = false;//false表示是新建的
        bool s = true;//true表示已保存
        public FirmNotepad()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void rtxNotepad_TextChanged(object sender, EventArgs e)
        {
            //文本被修改后布尔类型s变为false,表示未保存
            s = false;
        }

        private void tsmiNew_Click(object sender, EventArgs e)
        {
            // 判断当前文件是否从磁盘打开,或者新建时文档不为空,并且文件未被保存
            if (b == true ||rtxNotepad.Text.Trim() != "")
            {
                if (s == false)//文件未保存  
                {
                    string result;
                    result = MessageBox.Show("文件尚未保存,是否保存?",
                "保存文件", MessageBoxButtons.YesNoCancel).ToString();//发出一个对话框,用户输入的东西返回成result
                    switch (result)
                    {
                        case "Yes":
                            if(b == true)
                            {
                                rtxNotepad.SaveFile(odlgNotepad.Filter);//保存的是那个的类型
                            }else if(sdlgNotepad.ShowDialog() == DialogResult.OK){
                                rtxNotepad.SaveFile(sdlgNotepad.FileName);
                            }
                            s = true;//文件不是新建的已保存
                            rtxNotepad.Text = "";
                            break;
                        case "No"://不保存,文本内容清空
                            b = false;
                            rtxNotepad.Text = "";
                            break;
                    }

                }
            }
        }

        private void stsNotepad_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

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

        private void tsmiSave_Click(object sender, EventArgs e)
        {
            if(b == true && rtxNotepad.Modified == true)//新建的文件的保存
            {
                rtxNotepad.SaveFile(odlgNotepad.FileName);
                s = true;
            }else if(b == false && rtxNotepad.Text.Trim()!="" && sdlgNotepad.ShowDialog() == DialogResult.OK)
            {
                rtxNotepad.SaveFile(sdlgNotepad.FileName);
                s = true;
                b = true;
                odlgNotepad.FileName = sdlgNotepad.FileName;
            }
        }

        private void tsmiSaveAs_Click(object sender, EventArgs e)
        {//另存为的代码
            if (sdlgNotepad.ShowDialog() == DialogResult.OK)
            {
                rtxNotepad.SaveFile(sdlgNotepad.FileName);
                s = true;
            }
        }
        //退出应用的代码
        private void tsmiClose_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        //撤销操作
        private void tsmiUndo_Click(object sender, EventArgs e)
        {
            rtxNotepad.Undo();
        }
        //复制
        private void tsmiCopy_Click(object sender, EventArgs e)
        {
            rtxNotepad.Copy();
        }
        //剪切
        private void tsmiCut_Click(object sender, EventArgs e)
        {
            rtxNotepad.Cut();
        }
        //粘贴
        private void tsmiPaste_Click(object sender, EventArgs e)
        {
            rtxNotepad.Paste();
        }
        //全选
        private void tsmiSelectAll_Click(object sender, EventArgs e)
        {
            rtxNotepad.SelectAll();
        }
        //显示当前日期
        private void tssLbl2_Click(object sender, EventArgs e)
        {
            rtxNotepad.AppendText(System.DateTime.Now.ToString());
        }
        //自动换行
        private void tsmiAuto_Click(object sender, EventArgs e)
        {
            if(tsmiAuto.Checked == false)
            {
                tsmiAuto.Checked = true;
                rtxNotepad.WordWrap = true;
            }
            else
            {
                tsmiAuto.Checked = false;
                rtxNotepad.WordWrap = true;
            }
        }
        //修改字体
        private void tsmiFont_Click(object sender, EventArgs e)
        {
            if(fdlgNotepad.ShowDialog() == DialogResult.OK)
            {
                rtxNotepad.SelectionColor = fdlgNotepad.Color;
                rtxNotepad.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;
                //设置多格式文本框左上角位置
                rtxNotepad.Location = point;
                rtxNotepad.Height += tlsNotepad.Height;
            }
            else
            {
                /* 显示工具栏时,多格式文本框左上角位置的位置为(0,49),
                    因为工具栏的高度为25,加上菜单的高度24后为49 */
                point = new Point(0, 49);
                tsmiToolStrip.Checked = true;
                tlsNotepad.Visible = true;
                tlsNotepad.Location = point;
                tlsNotepad.Height -= tlsNotepad.Height;
            }
        }
        //状态栏
        private void tsmiStatusStrip_Click(object sender, EventArgs e)
        {
            if(tsmiStatusStrip.Checked == true)
            {
                tsmiStatusStrip.Checked = false;
                stsNotepad.Visible = false;
                rtxNotepad.Height += stsNotepad.Height;
            }
            else
            {
                tsmiStatusStrip.Checked = true;
                stsNotepad.Visible = true;
                rtxNotepad.Height -= stsNotepad.Height;
            }
        }

        //关于记事本

        private void tsmiAbout_Click(object sender, EventArgs e)
        {

                frmAbout ob_FrmAbout = new frmAbout();

                ob_FrmAbout.Show();

        }

    }
}
/*
 * 状态栏控件:stsNotepad
 * 打开对话框(OpenFileDialog):odlgNotepad
 * 保存对话框(SaveFileDialog):sdlgNotepad
 * 字体对话框(FontDialog)    :fdlgNotepad
 * 计时器空间(Timer)         :tmrNotepad
 * 多格式文本矿建RichTextBox   :rtxtNotepad
 * 文本框(rtxtNotepad)、菜单(mnusNotepad)、工具栏(tlsNotepad)
 */


//MessageBox用于创建一个消息对话框

关于记事本部分需要再新建一个窗体写代码,然后用主体调用

Git地址:Notepad: 随便一个仓库

进去下载有里面有一行代码有问题的删掉就可以了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值