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()函数里有说明,好吧,就这样,吹水结束!