C#上位机设计项目实战——04载入上次的设置

让软件有记忆功能

借助注册表ddl实现

1.导入注册表库&定义全局变量
public partial class Form1 : Form
    {
        //导入注册表库
        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);//系统dll导入ini写函数
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);//系统dll导入ini读函数

//这都是全局变量
        string FileName = System.AppDomain.CurrentDomain.BaseDirectory + "data.ini"; //ini文件名 存放注册表位置的
        StringBuilder temp = new StringBuilder(255);  //存放 读出ini的内容 
        string CurrentPortName;    //当前串口号
        
2.添加 窗口关闭处理函数
public Form1()
        {
            InitializeComponent();
            serialPort1.DataReceived += new SerialDataReceivedEventHandler(PortDataReceivedEvent); //串口数据接收事件 
            System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; //
            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form1_FormClosing);//窗口关闭处理函数
        }
3.窗口关闭时保存 我们的设置
  private void Form1_FormClosing(object sender,EventArgs e)  //窗口关闭时保存 我们的设置
        {
            WritePrivateProfileString("PortData", "PortName", CurrentPortName, FileName);//窗口关闭,保存
              //********************要存到的数据块、要存到的key、要存的内容(当前串口号)、存放的地方(文件地址)***************************   
        }

4.载入上次的设置
private void Form1_Load(object sender, EventArgs e)  //载入上次的设置
        {
            this.Size = new Size(620, 107);//缩小
            GetPrivateProfileString("PortData", "PortName", "COM1", temp, 256, FileName);//读取ini值,默认是COM1
            //******************要读的数据块、要读的key、为空默认的输出值、读取内容的存放变量、读取长度、要从FileName读取***********  
            comboBox1.Text = temp.ToString();//初始化
        }
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值