C#winform上位机开发学习笔记3-串口助手的信息保存功能添加

本文介绍了如何使用C#编程语言实现一个串口助手,其中涉及的功能包括保存和恢复发送框内容及选择的串口号到ini文件中,确保软件关闭后重启时能自动加载上次设置。通过DllImport调用系统DLL库实现文件操作,保证了数据的持久化和跨会话一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.功能描述

下次开启串口助手时会存留上次的发送框信息,以及选择的串口号(备份串口号与发送栏内容

原理:将文本信息保存在,ini文件中,下次打开软件时读取文件信息刷新对应控件文本

注意:在窗口关闭事件函数中也可进行信息备份工作,但不稳定,因此用本篇中的方法进行较为可靠

2.代码部分

2.1 创建文件与编辑写入信息存储代码

2.1.1 public partial class Form1 : Form初始化程序中加入以下代码

using System.Runtime.InteropServices;//应用空间变量声明,未声明则出现[DllImport("kernel32")]报错

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读函数
        //创建文件,文件名为:Backup.ini
        string FileName = System.AppDomain.CurrentDomain.BaseDirectory + "Backup.ini";
    }

 #存储的文件保存在bin文件中,文件名为创建时编辑的名称“Backup.ini”

2.1.2 串口发送栏函数

备份发送栏

 //串口发送栏函数
        private void textBox5_TextChanged(object sender, EventArgs e)
        {
            //备份发送栏
            WritePrivateProfileString("串口1", "发送栏", textBox5.Text, FileName);//保存文件:其中串口1与发送栏为文本内的标识,将发送栏的信息存储在filename文件中
        }

2.1.3 手动扫描并添加串口号函数中添加备份串口号程序

备份串口号

 //备份端口号
            WritePrivateProfileString("串口1", "端口号", comboBox1.Text, FileName);//保存文件:其中串口1与端口号为文本内的标识,将COM组合框的信息存储在filename文件中

手动扫描并添加串口号函数完整代码如下:

        //自定义函数1-手动扫描并添加可用串口
        private void SearchAndAddSerialToComboBox(SerialPort MyPort, ComboBox MyBox)
        {
            string[] ComputerPortName = SerialPort.GetPortNames();  //获取本机串口列表
            //string BackupPort;//定义字符串备份端口号

            bool MyBackupPortFlag = false;  //备份端口号可用标志位

            //恢复端口号
            GetPrivateProfileString("串口1", "端口号", "", BackupBuf, 100, FileName);  //获取备份的端口号
            string MyBackupPortName = BackupBuf.ToString();//定义字符串备份端口号

            //添加端口号
            MyBox.Items.Clear();  //清空ComboBox内容
            for (int i = 0; i < ComputerPortName.Length; i++) //循环
            {
                if (MyBackupPortName == ComputerPortName[i])  //之前的端口号可用,置位标志位
                {
                    MyBackupPortFlag = true;
                }

                try  //核心原理是依靠try和catch完成遍历
                {
                    MyPort.PortName = ComputerPortName[i];
                    MyPort.Open();                          //如果失败,后面的代码不会执行          
                    MyBox.Items.Add(MyPort.PortName);       //打开成功,添加至下拉列表
                    MyPort.Close();                         //关闭

                    //检
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值