当前位置: 首页 > news >正文

Winform(C#) 项目保存页面

上一张我们已经实现了TCP和串口页面的数据展示,和保存控件

我们这一章,实现如何去,控制保存。

 

一、控件展示

CheckBox   TextBox   Button   label 

Name:

checkSaveImage     checkDelete    txtSaveDays

txtSaveImagePath    btnSelectImagePath

checksaveData       

txtSaveDataPath      btnSelectDataPath

btnSave

二、根据上回创建API来实现

 private static TotalMessage instance = null;private TotalMessage() { }private static readonly object locker = new object();public static TotalMessage GetInstance(){if (instance == null){lock (locker){instance = new TotalMessage();}}return instance;}public string Configpath = Directory.GetCurrentDirectory() + @"\配置文件\Config.ini";

三、声明类

  #region 图片数据路径属性public string ImageSavePath { get; set; }public string DataSavePath { get; set; }#endregion#region 保存数据-图片属性public bool IsSaveImage { get; set; }public bool IsSaveData { get; set; }public bool IsDelete {  get; set; }public int SaveDay {  get; set; }public string PathSaveImage {  get; set; }public string PathSaveData {  get; set; }#endregionpublic void LoadConfig()
{ImageSavePath = IniAPI.GetPrivateProfileString("路径", "ImageSavePath", @"D:\Image", Configpath);DataSavePath = IniAPI.GetPrivateProfileString("路径", "DataSavePath", @"D:\Data", Configpath);
}public void WriteValues(string Section, string key, string value)
{IniAPI.INIWriteValue(Configpath, Section, key, value);
}

四、窗体框架

1.在APP.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration><configSections><sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" ><section name="九点标定项目.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /></sectionGroup></configSections><startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /></startup><userSettings><九点标定项目.Properties.Settings><setting name="IsSaveImage" serializeAs="String"><value>True</value></setting><setting name="IsSaveData" serializeAs="String"><value>True</value></setting><setting name="IsDelete" serializeAs="String"><value>True</value></setting><setting name="SaveDays" serializeAs="String"><value>7</value></setting><setting name="LastDeleteData" serializeAs="String"><value>2023-05-11</value></setting></九点标定项目.Properties.Settings></userSettings>
</configuration>

2. 窗体加载

 private void FormSaveDataImage_Load(object sender, EventArgs e){checkSaveImage.Checked = message.IsSaveImage ? true : false;checksaveData.Checked = message.IsSaveData ? true : false;checkDelete.Checked = message.IsDelete ? true : false;txtSaveDays.Text=message.SaveDay.ToString();txtSaveDataPath.Text = message.PathSaveData;txtSaveImagePath.Text=message.PathSaveImage;}

3.保存数据路径

  private void btnSelectImagePath_Click(object sender, EventArgs e){//创建一个FolderBrowserDialog对象FolderBrowserDialog folder=new FolderBrowserDialog();folder.SelectedPath = message.PathSaveImage;if(folder.ShowDialog() == DialogResult.OK){txtSaveDataPath.Text=folder.SelectedPath;message.PathSaveImage = folder.SelectedPath;}}

4.保存图片路径

 private void btnSelectDataPath_Click(object sender, EventArgs e){FolderBrowserDialog fold=new FolderBrowserDialog();fold.SelectedPath = message.PathSaveData;if(fold.ShowDialog() == DialogResult.OK){txtSaveDataPath.Text=fold.SelectedPath;message.PathSaveData=fold.SelectedPath;}}

5.this.Controls

 TotalMessage message = TotalMessage.GetInstance();public FormSaveDataImage(){InitializeComponent();message.IsSaveData=Settings.Default.IsSaveData;message.IsSaveImage=Settings.Default.IsSaveImage;message.IsDelete=Settings.Default.IsDelete;message.SaveDay=Settings.Default.SaveDays;message.PathSaveImage=TotalMessage.GetInstance().ImageSavePath;message.PathSaveData=TotalMessage.GetInstance().DataSavePath;}

6.保存

 private void btnSave_Click(object sender, EventArgs e){message.IsSaveImage=checkSaveImage.Checked;message.IsSaveData=checksaveData.Checked;message.IsDelete=checkDelete.Checked;message.PathSaveData=txtSaveDataPath.Text;message.PathSaveImage=txtSaveImagePath.Text;message.SaveDay=Convert.ToInt32(txtSaveDays.Text.Trim());TotalMessage.GetInstance().ImageSavePath=message.PathSaveImage;TotalMessage.GetInstance().DataSavePath=message.PathSaveData;Settings.Default.IsSaveData = message.IsSaveData;Settings.Default.IsSaveImage = message.IsSaveImage;Settings.Default.IsDelete = message.IsDelete;Settings.Default.SaveDays=message.SaveDay;DialogResult res=MessageBox.Show("确认保存设置","保存设置",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);if(res == DialogResult.Yes){Settings.Default.Save();message.WriteValues("路径","ImageSavePath",message.PathSaveImage);message.WriteValues("路径","DataSavePath",message.PathSaveData);MessageBox.Show("保存成功");}

五、ALL代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using 九点标定项目.Class;
using 九点标定项目.Properties;namespace 九点标定项目
{public partial class FormSaveDataImage : Form{TotalMessage message = TotalMessage.GetInstance();public FormSaveDataImage(){InitializeComponent();message.IsSaveData=Settings.Default.IsSaveData;message.IsSaveImage=Settings.Default.IsSaveImage;message.IsDelete=Settings.Default.IsDelete;message.SaveDay=Settings.Default.SaveDays;message.PathSaveImage=TotalMessage.GetInstance().ImageSavePath;message.PathSaveData=TotalMessage.GetInstance().DataSavePath;}private void FormSaveDataImage_Load(object sender, EventArgs e){checkSaveImage.Checked = message.IsSaveImage ? true : false;checksaveData.Checked = message.IsSaveData ? true : false;checkDelete.Checked = message.IsDelete ? true : false;txtSaveDays.Text=message.SaveDay.ToString();txtSaveDataPath.Text = message.PathSaveData;txtSaveImagePath.Text=message.PathSaveImage;}private void btnSelectImagePath_Click(object sender, EventArgs e){//创建一个FolderBrowserDialog对象FolderBrowserDialog folder=new FolderBrowserDialog();folder.SelectedPath = message.PathSaveImage;if(folder.ShowDialog() == DialogResult.OK){txtSaveDataPath.Text=folder.SelectedPath;message.PathSaveImage = folder.SelectedPath;}}private void btnSelectDataPath_Click(object sender, EventArgs e){FolderBrowserDialog fold=new FolderBrowserDialog();fold.SelectedPath = message.PathSaveData;if(fold.ShowDialog() == DialogResult.OK){txtSaveDataPath.Text=fold.SelectedPath;message.PathSaveData=fold.SelectedPath;}}private void btnSave_Click(object sender, EventArgs e){message.IsSaveImage=checkSaveImage.Checked;message.IsSaveData=checksaveData.Checked;message.IsDelete=checkDelete.Checked;message.PathSaveData=txtSaveDataPath.Text;message.PathSaveImage=txtSaveImagePath.Text;message.SaveDay=Convert.ToInt32(txtSaveDays.Text.Trim());TotalMessage.GetInstance().ImageSavePath=message.PathSaveImage;TotalMessage.GetInstance().DataSavePath=message.PathSaveData;Settings.Default.IsSaveData = message.IsSaveData;Settings.Default.IsSaveImage = message.IsSaveImage;Settings.Default.IsDelete = message.IsDelete;Settings.Default.SaveDays=message.SaveDay;DialogResult res=MessageBox.Show("确认保存设置","保存设置",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);if(res == DialogResult.Yes){Settings.Default.Save();message.WriteValues("路径","ImageSavePath",message.PathSaveImage);message.WriteValues("路径","DataSavePath",message.PathSaveData);MessageBox.Show("保存成功");}}}}


http://www.mrgr.cn/news/91598.html

相关文章:

  • 使用Catcho阻止app闪退
  • React之旅-03 路由
  • 【0407】Postgres内核 Condition variables (ConditionVariable)设计机制 ①
  • 开题报告——基于Spring Boot的垃圾分类预约回收系统
  • 【DeepSeek服务器部署全攻略】Linux服务器部署DeepSeek R1模型、实现API调用、搭建Web页面以及专属知识库
  • DeepSeek联网搜索
  • Android 动态加入Activity 时 manifest 注册报错解决。使用manifestPlaceholders 占位
  • 【OS安装与使用】part3-ubuntu安装Nvidia显卡驱动+CUDA 12.4
  • 鼎捷PLM深度集成DeepSeek,领跑智能研发新赛道
  • 从猜想终结到算法革新,弹性哈希开启数据存储新篇章
  • 深度学习之自然语言处理CBOW预测及模型的保存
  • 【复现DeepSeek-R1之Open R1实战】系列7:GRPO原理介绍、训练流程和源码深度解析
  • dify实现分析-rag-关键词索引的实现
  • Git命令行入门
  • 有向图的强连通分量: Kosaraju算法和Tarjan算法详解
  • 解锁机器学习核心算法|主成分分析(PCA):降维的魔法棒
  • 如何写架构设计⽂档
  • Flutter - 初体验
  • Django 连接(sqlserver)数据库方法
  • C# 背景 透明 抗锯齿 (效果完美)