对象序列化(六):应用实例-程序退出时保存状态
应用序列化技术的一个典型开发场景就是保存应用程序的当前状态,它允许用户暂时中断当前的工作,关闭程序退出,下次重新启动程序时自动恢复上次的工作状态。
示例:
保存窗体颜色和位置的对象:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Drawing; namespace SaveFormStatus{ [Serializable]public class FormStatus {public Color BackgroundColor { get; set; }public int Left { get; set; }public int Top { get; set; }public int Width { get; set; }public int Height { get; set; } }}
主程序:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Runtime.Serialization;using System.Runtime.Serialization.Formatters.Binary; namespace SaveFormStatus{public partial class frmMain : Form {public frmMain() { InitializeComponent(); LoadStatus(); } private void btnChooseColor_Click(object sender, EventArgs e) {if (colorDialog1.ShowDialog() == DialogResult.OK) { BackColor = colorDialog1.Color; } } private FormStatus status = null;private void SaveStatus() { status=new FormStatus(); status.BackgroundColor=this.BackColor; status.Left=this.Left; status.Top=this.Top; status.Width=this.Width; status.Height = this.Height; using(FileStream fs=new FileStream("FormStatus.cfg",FileMode.Create)) { IFormatter formatter = new BinaryFormatter(); formatter.Serialize(fs, status); } } private void LoadStatus() {try {if (File.Exists("FormStatus.cfg")) { using (FileStream fs = new FileStream("FormStatus.cfg", FileMode.Open)) { IFormatter formatter = new BinaryFormatter(); status = formatter.Deserialize(fs) as FormStatus;if (status != null) {this.BackColor = status.BackgroundColor;this.Left = status.Left;this.Top = status.Top;this.Width = status.Width;this.Height = status.Height; } } } }catch (Exception ex) { MessageBox.Show(ex.Message); } } private void frmMain_FormClosing(object sender, FormClosingEventArgs e) { SaveStatus(); } }}
转载于:https://www.cnblogs.com/eagle1986/archive/2012/02/14/2351977.html
对象序列化(六):应用实例-程序退出时保存状态相关推荐
- 如何在UWP应用程序退出时能做一些额外事情?
如何在UWP应用程序退出时能做一些额外事情? 需求 思路 实现 小结 参考 需求 最近在做UWP的项目,其中有这样一个的需求:统计用户使用APP的时长. 思路 在用户打开app的时候,记录一个时间点t ...
- android程序退出时回调,关于android:通过刷卡杀死App时的回调
我有一个涉及导航的应用程序. 如果用户启动导航,则会创建一种"navigationLifecycleManager".它存储在应用程序实例中,以便在配置更改,活动等之间切换时幸免于 ...
- 自定义Toast、程序退出时Toast也退出、Toast的用法
当我们在一个应用中用到Toaster来做为提示时,发现这样一个问题,当某个条件服合时,会弹出Toaster的对话框,不停地执行这个条件,会不停进行Toaster.show的显示,执行几次就现示几次,即 ...
- python程序退出后保存变量_Python将变量存储在一个列表中,每次程序重新启动时都会保存这些变量...
我正为我的频道开发一个Python Twitch IRC Bot,它似乎很简单,但我却被困在一个看似简单的任务上.我有一个积分系统,我认为它是有效的,但我发现每次我重新启动程序,包含用户余额的列表都会 ...
- java程序退出自动保存_你知道如何自动保存 Spring Boot 应用进程号吗
1. 前言 欢迎阅读 Spring Boot 2 实战 系列文章. PID 对于系统运维来说并不陌生,但是对于一些开发者特别是新手还是要简单介绍一下的.它是 Process ID 的简称,是系统分配给 ...
- 将对象序列化与反序列实例
概述: 有些时候我们需要把对象进行序列化或者反序列化,通过System.Runtime.Serialization.Formatters.Binary里的方法即可实现 . 实例如下: Code usi ...
- C# 程序退出时 杀死进程
由于代码处理过,防止多开,如果之前的进程没有退出,再次启动小球时,就会程序无法启动的问题,所以在退出后强制再次杀死进程 查看 软件防止多开 #region 小球的右键菜单单击事件/// <sum ...
- Python程序退出时执行指定代码
一:捕获所有的异常 二:采用traceback模块查看异常,需要导入traceback模块,这个方法会打印出异常代码的行号 三:调用atexit import atexit import signal ...
- mfc程序退出时删除托盘图标
在退出函数中加入 nid.hWnd = this-> m_hWnd; nid.uID=IDR_MAINFRAME; Shell_NotifyIcon(NIM_DELETE,&ni ...
最新文章
- vue.js安装过程(npm安装)
- 如何使用BigDecimal?
- python入门的120个基础练习_python入门的120个基础练习(一),自学python必看!!...
- [转载]offsetHeight , clientHeight, scrollHeight 区别
- NYOJ 915 +-字符串
- 计算机安装了打印驱动无法打印,安装打印机的时候为什么电脑无法正常识别打印机?...
- 主流Ajax框架介绍
- 人脸识别技术软件测试测什么,人脸识别这么火,你知道它是什么吗?
- android后台定时执行任务,后台执行的定时任务
- vscode 路径宏_VSCode宏怎么设置?VSCode宏的添加方法!
- web前端工程师做什么
- python对数据集处理,绘制世界地图
- ACM日历题新版(界面修改+国际节日)
- 汇编语言实现七段数码管显示控制实验
- 【SSH】MyEclipse卸载干净的方法
- prometheus查询语句学习
- MYSQL索引底层原理
- HP租车网站源码V6.0,一款专为租车行业打造的网站源码
- FreeSWITCH 对接阿里SDM(MRCP-SERVER)
- 华中科技大学计算机组成原理实验,单总线CPU设计(变/定长指令周期3级时序)(HUST),logisim,educoder
热门文章
- 《抓住“三伏天”习武健身的黄金季节》--胡俭雷
- Linux 搭建NTP服务器
- 用LoadRunner实现接口测试
- 清华大学2017届本科毕业典礼演讲——做有思想的行者
- Q89:全局光照(Global Illumination)——Path Tracing(只用于间接光照)
- 大数据可视化的方法和价值
- 服务器安装mysql文档_Linux 服务器安装MySQL数据库
- win7桌面运行html,手把手教你win7电脑如何运行config的操作教程
- java抛出异常齁_解決 Elasticsearch 使用 Java High Level REST Client 時出現 NoClassDefFoundError 錯誤...
- python安装失败找不到指定路径_解决安装python库时windows error5 报错的问题