如何保存用户为下次打开而写的注释?

时间:2016-09-06 15:10:21

标签: c# winforms

我使用C#和VS2015创建了一个WinForms笔记应用程序,用户可以在打开窗体时写入笔记并暂时保存。但是一旦用户关闭了应用程序并重新打开它,他保存的笔记就会消失。如何保存下次打开的笔记,以便他可以再次查看,编辑和阅读? 这是我的代码:

private void Form1_Load(object sender, EventArgs e)
{
    table = new DataTable();
    table.Columns.Add("Title", typeof(string));
    table.Columns.Add("Message", typeof(string));
    dataGridView1.DataSource = table;
    dataGridView1.Columns["Message"].Visible = false;
    dataGridView1.Columns["Title"].Width = 140;
}

private void btnNew_Click(object sender, EventArgs e)
{
    textBox1.Clear();
    textBox2.Clear();
}
private void btnSave_Click(object sender, EventArgs e)
{
    table.Rows.Add(textBox1.Text, textBox2.Text);
    textBox1.Clear();
    textBox2.Clear();
}

private void btnRead_Click(object sender, EventArgs e)
{
    int index = dataGridView1.CurrentCell.RowIndex;
    if (index > -1)
    {
        textBox1.Text = table.Rows[index].ItemArray[0].ToString();
        textBox2.Text = table.Rows[index].ItemArray[1].ToString();
    }
}

private void btnDelete_Click(object sender, EventArgs e)
{
    int index = dataGridView1.CurrentCell.RowIndex;
    table.Rows[index].Delete();
}

Here's my form image:

2 个答案:

答案 0 :(得分:1)

您可以使用“应用程序设置”存储一些数据。默认范围是"用户" (仅由当前用户存储并且仅供当前用户存储)但也可以是"应用程序" (适用于您应用的每个用户)。 您可以通过Properties.Settings.Default.myCustomSetting;

访问该数据

答案 1 :(得分:0)

原因是在程序执行期间,进程的映像在主内存(RAM)中,当程序完成时,其页面被抛出主内存,其数据部分不会保存任何地方(其当前数据)。当您再次运行程序时,程序开始处理(来自硬盘到主内存),它从第一个加载,并且不了解以前的会话,除非您的程序本身引用硬盘中的某个地方并使用预定义的数据。
有很多方法可以这样做,我说其中一些:
1)创建和使用与您的表格具有相同标准的数据库 2)使用System.IO命名空间中可用的方法创建二进制或文本文件,该方法将内容存储在文件系统中(在硬盘中)。项目启动时,从存储的文件中加载内容 3)使用在C#中具有不同方法的序列化,例如使用System.Xml.Serialization namespace。