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(); //关闭
//检