我使用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();
}
答案 0 :(得分:1)
您可以使用“应用程序设置”存储一些数据。默认范围是"用户" (仅由当前用户存储并且仅供当前用户存储)但也可以是"应用程序" (适用于您应用的每个用户)。
您可以通过Properties.Settings.Default.myCustomSetting;
答案 1 :(得分:0)
原因是在程序执行期间,进程的映像在主内存(RAM)中,当程序完成时,其页面被抛出主内存,其数据部分不会保存任何地方(其当前数据)。当您再次运行程序时,程序开始处理(来自硬盘到主内存),它从第一个加载,并且不了解以前的会话,除非您的程序本身引用硬盘中的某个地方并使用预定义的数据。
有很多方法可以这样做,我说其中一些:
1)创建和使用与您的表格具有相同标准的数据库
2)使用System.IO命名空间中可用的方法创建二进制或文本文件,该方法将内容存储在文件系统中(在硬盘中)。项目启动时,从存储的文件中加载内容
3)使用在C#中具有不同方法的序列化,例如使用System.Xml.Serialization namespace。