c#作业第二期第一弹(记事本程序)

这篇博客记录了一位C#初学者按照在线视频教程制作记事本程序的过程。主要内容包括界面设计,使用timer、openFileDialog、saveFileDialog等控件实现文件打开、保存功能,以及图标和背景图片的设置。程序通过读取文件内容并在文本框显示,同时有未保存提醒功能。
摘要由CSDN通过智能技术生成
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 TextBoxDemo
{
    public partial class Editor : Form
    {
        public Editor()
        {
            InitializeComponent();
        }
        private String OriginalContent = "";             
        private String _FileName = ""; 
        public String FileName 
        {
            get
            {
                return _FileName;
            }
            set
            {
                _FileName = value;
                Text = Path.GetFileName(value) + "-My Note";               //读取路径并且在文件名后面加上-MyNote
            }
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {
            lblTimer.Text = DateTime.Now.ToString();                               //读取当前时间
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Open();             
        }

        private void Open()
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                FileName = openFileDialog1.FileName;
                try
                {
                    OriginalContent = File.ReadAllText(FileName);                      //读取文本内容
                    txtEditor.Text = OriginalContent;                                         //显示在文本框中
                }
                catch (Exception)
                {
                    lblInfo.Text = "Error!";
                }
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Save();
        }

        private void Save()
        {
            bool flag = false;       //设置标志位,用于显示是否需要保存
            if (FileName != "")
            {
                if (txtEditor.Text != OriginalContent && MessageBox.Show("The file has changed,do you want to save it?",
                    "Save file",
                    MessageBoxButtons.YesNo) == DialogResult.Yes)                         //显示文本框的按钮
                {
                    flag = true;
                }
            }
            else
            {
                if (txtEditor.Text != "" && saveFileDialog1.ShowDialog() == DialogResult.OK)     //判断是否文本框内有文本输入
                {
                    FileName = saveFileDialog1.FileName;   
                    flag= true;
                }
            }

            if (flag)
            {
                try
                {
                    File.WriteAllText(FileName, txtEditor.Text);
                    OriginalContent = txtEditor.Text;
                    lblInfo.Text = "File has saved";
                }
                catch (Exception)
                {
                    lblInfo.Text = "Error!";
                }
            }
        }

        private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
        {

        }

        private void Editor_Load(object sender, EventArgs e)
        {
            lblTimer.Text = "";                        //lblTimer初始化,即令lblTimer它不显示在界面上
            lblInfo.Text = "";                          //同lblTimer
            Text = "No title-My note";          //一开始打开时的文本框标题
        }

        private void label1_Click_1(object sender, EventArgs e)
        {

        }

        private void Editor_FormClosing(object sender, FormClosingEventArgs e)
        {
            Save();
        }
        }
    }


咳咳,先把代码弄上来,咱看一下界面吧


额,插了个背景图片没想到效果这么差,算了(果然不是做界面的料)。。。

其实这个东西基本上是照着网上的视频做的,链接地址:http://mooc.study.163.com/learn/BIT-1000003016?tid=1000003016#/learn/content?type=detail&id=1000014002&cid=1000010005

上面这些程序呢,总的来说是这样的:

首先先做出界面,界面的制作其实就是添加控件改属性。

用到的控件有:timer  openFileDialog   saveFileDialog三个控件,就是时间,打开文件,保存文件

当然用了两个label、两个button和一个textBox

对了,图标的更改其实就是选择整个窗体的属性中里面选择属性Icon,图标文件是ico,我自己找网上的jpg做出来的(其实没什么技术含量,就调一下像素为32x32而已,在保存为ico)

其实文件的图标我也改掉了:

就是简单的双击这个东西:

修改

重新生成一下就搞定了。

背景图片呢?就是选择窗体的一个BackgroundImage属性,然后选择图片就行了。

界面基本就这样,至于控件与按钮怎么相连的,看代码就知道了

比如open这段:


就是简单的文件读取,上面那个判别就是判断他是否在打开界面出来后选择了打开按钮而已,选择了就读取文本内容并且显示在文本框中。

就是这个界面的东西:

选择了就读取咯。

对了界面有个东西没显示出来,我让它出来吧:


有个File has saved,好吧不要吐槽我英语,我连6级都没过,语法错误请无视

这个其实就是lblInfo标签显示的内容。具体实现代码上有。

对了,如果修改了却没保存直接点×它会提醒你保存的,在save()函数里有说明,好吧,就这样,吹水结束!


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值