如何保存用户所写的笔记以供下次打开

本文关键字:笔记 下次 何保存 保存 用户 | 更新日期: 2023-09-27 18:05:48

我使用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();
}
这是我的表单图像:

如何保存用户所写的笔记以供下次打开

您可以使用您的应用程序设置来存储一些数据。默认作用域是"User"(仅由当前用户存储并用于当前用户),但也可以是"Application"(适用于应用程序的每个用户)。你可以通过Properties.Settings.Default.myCustomSetting;

访问这些数据

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