C# 如何保存用户为下次打开而编写的笔记?

C# 如何保存用户为下次打开而编写的笔记?,c#,winforms,C#,Winforms,我使用C#和VS2015创建了一个WinForms便笺应用程序,用户可以在打开表单时编写便笺并暂时保存。但一旦用户关闭应用程序并重新打开,他保存的笔记就会消失。我如何保存笔记,以便下次打开时他可以再次查看、编辑和阅读? 这是我的密码: private void Form1_Load(object sender, EventArgs e) { table = new DataTable(); table.Columns.Add("Title", typeof(string));

我使用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();
}

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

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

3) 使用在C#中有不同方法的序列化,例如使用System.Xml.serialization命名空间。

将它们保存为文本文件或数据库。如果没有数据库,可以使用数据表的方法将其保存到文件中。然后,若要再次加载,可以使用方法。@RezaAghaei我可以有一个代码示例吗?是否希望用户始终拥有最后一个文本?或者可以使用特定的名称保存,然后打开特定的文件,就像记事本一样?不,对不起。查找DataTable.WriteXML()实际上我必须提到还有另一种简单的方法,使用RichTextBox并使用其Save方法将内容保存为.rtf扩展名。