关闭窗体后,利用StreamWriter保存控件里面的数据

以保存DataGridView里面的数据为例:

通过窗体增加的数据,没有用数据库保存,可以使用StreamWriter将数据存在临时文件里面,再次打开窗体时写入即可。

 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            //需要将集合中的数据存储
            using (StreamWriter sw=new StreamWriter("save.txt"))
            {
                foreach (var item in lists)
                {
                    sw.WriteLine(item.Name + "|" + item.StuNo + "|" + item.Age);
                }
            }
            MessageBox.Show("ok");
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            using(StreamReader sr=new StreamReader ("save.txt"))
            {
                //读取一行数据
                string str = sr.ReadLine();
                //定义分割之后的数组
                string[] splits = null;
                while (!string.IsNullOrEmpty(str))
                {
                    splits = str.Split(‘|‘);
                    Student stu = new Student(splits[0],Convert.ToInt32(splits[1]),Convert.ToInt32( splits[2]));
                    lists.Add(stu);
                    str = sr.ReadLine();
                }
                this.dgvStu.DataSource = new BindingList<Student>(lists);
            }
        }
时间: 2024-10-07 06:00:40

关闭窗体后,利用StreamWriter保存控件里面的数据的相关文章

在DevExpress程序中使用Winform分页控件直接录入数据并保存

一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数据,这种对于字段比较少,而且内容相对比较简单的情况下,效率是比较高的一种输入方式.本篇随笔主要介绍在DevExpress程序中使用GridView直接录入数据并保存的实现,以及使用Winform分页控件来进行数据直接录入的实现操作. 1.在GridView上展示数据 在GridView上展示数据,只

关闭窗体后,进程仍然在运行的问题重现与解决

1 问题陈述 在开发中,遇到这样一个问题: 点击程序主窗体右上角的叉号关闭应用程序后,程序的进程却没有关闭. 通过查阅资料,了解到,产生此类问题的原因主要有以下两点: 1)程序中存在死循环. 2)程序为多线程程序,且在窗体关闭后,仍有线程在工作. 本文将针对此类问题,进行重现并提出解决方案. 2 场景再现 @场景1 新建Windows应用程序CloseWindowExp,程序每隔一秒钟改变一次窗体的背景色. 程序运行后的效果,如下图所示(变化的过程,就请大家在脑子中想象一下吧). 程序的主要代码

可导出窗体和背景的报表控件QuickReport

QuickReport 是一个100% 用Delphi 代码编写的分栏报表生成器控件,它可与Delphi 和C++Builder 完美整合,并且Delphi/C++Builder IDE 中使用表单设计器作为报表设计器来设计报表. 具体功能: 报表设计:QuickReport 是一个用Delphi 编写的分栏报表生成器.可与Delphi 和C++Builder 完美整合,在Delphi/C++Builder IDE 中使用表单设计器作为报表设计器来设计报表. 数据连接:Quickreport 可

Winform开发框架之肖像显示保存控件的实现

我们在开发一些Winform程序的时候,除了常规的显示普通数据外,有的时候需要显示一些人员肖像或者一些车辆等物体的图片,一般这些内容较小,所以以二进制存储在数据库是一个不错的方案.但由于它们虽然很常用,设计数据库保存的逻辑又会使得整个控件的封装显得麻烦很多.本文介绍的肖像显示保存控件,通过事件的封装处理,让数据的保存不在依赖于数据库存储模块,实现更加通用的特性. 1.肖像显示保存控件的需求 我们在一些程序了里面,可能需要显示一些人员头像,车辆图片,物件图片等,这些图片可以从电脑上选取,也可以拍照

WPF利用通过父控件属性来获得绑定数据源RelativeSource

WPF利用通过父控件属性来获得绑定数据源RelativeSource 有时候我们不确定作为数据源的对象叫什么名字,但知道作为绑定源与UI布局有相对的关系,如下是一段XAML代码,说明多层布局控件中放置一个文本控件,来显示父级控件的名称. 1.XAML Html代码 <Grid x:Name="g1" Background="Red" Margin="10"> <DockPanel x:Name="d1" Ba

利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的博客介绍过几篇关于Aspose.Word控件和Aspose.Cell控件的使用操作,如下所示. <使用Aspose.Cell控件实现Excel高难度报表的生成(一)> <使用Aspose.Cell控件实现Excel高难度报表的生成(二)> <使用Aspose.Cell控件实现Ex

利用cxSpreadSheetBook电子表格控件完成复杂性的报表例子

如果报表复杂,可以利用cxSpreadSheetBook电子表格控件来生成报表. 下面例子是装载数据同时设置电子表格格式: procedure TAO_RepShowData.LoadRepData;var  CurCursor: TCursor;begin  CurCursor := Screen.Cursor;                              // 光标设置  Screen.Cursor := crHourGlass;  try    cxSpreadBook.Be

wpf 保存控件中的内容为图片格式

黄色的是wpf控件的名称! //保存到特定路径            FileStream fs = new FileStream(@"C:\image.png", FileMode.Create);            //对象转换成位图            RenderTargetBitmap bmp = new RenderTargetBitmap((int)this.mediaElement1.ActualWidth, (int)this.mediaElement1.Act

winform利用代码将控件置于顶端底端

有时,我们可能动态的添加控件,并准备将其置于对顶层或最底层.实现的方法有两个: 一种方法是在WinForm窗体中使用Controls控件集的SetChildIndex方法,该方法将子控件设定为指定的索引值,其方法原型如下: void SetChildIndex(Control child, int newIndex) 假设窗体中有一个按钮Button控件,名为button1,如果将其的索引设置为10,源代码如下: this.Controls.SetChildIndex(button1, 10);