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

详讲C#中如何存储当前项目的设置-超级简单省事

我们在编写软件的时候总有一些配置数据需要保存,比如用户选择的偏好设置,又如软件所用到的数据库文件等。我们有很多中方式都可以保存,比如直接保存在某个文本文件,或者ini文件中,其实最简单的办法是保存在项目的资源文件中。

文章目录

  • 一、设置文件
    • 1、找到并建立设置文件
    • 2、App.config文件
    • 3、setting.designer.cs
  • 二、在主程序中调用
    • 1、读取
    • 2、写入
    • 3、写入数据不能保存的问题

文章原出处: https://blog.csdn.net/haigear/article/details/141424438

一、设置文件

1、找到并建立设置文件

设置文件,我们可以在项目属性中找到它,注意,不是上面的资源文件。如果你选择了资源文件,那就需要操作资源文件中的键值对了,方法其实查不到,但我们这里是专门来讲软件的设置,所哟我们还是建议大家选择设置文件。

在这里插入图片描述

打开后我们就可以创建一些我们需要保存的键值对,当然,你可以只创建名称
在这里插入图片描述
文章原出处: https://blog.csdn.net/haigear/article/details/141424438

2、App.config文件

完上述上述步骤后,我们会发现项目文件中都了一个app.config,内容可以和上面表格对应
在这里插入图片描述
注意:
这个文件其实不是真正用来我们存储我们的设置数据的文件,而只是为我们提供了一个模板文件,在运行程序的时候,如果需要存储配置数据了,系统会自动拷贝一个app.config文件放在windows的用户数据中,一般都放在appdata中了,大家感兴趣的可以去找找。
文章原出处: https://blog.csdn.net/haigear/article/details/141424438

3、setting.designer.cs

这是系统专门为我们的项目生成的一个封装了上述表格中建立的键值操作的类。值得大家注意的是,如果你只是用到读取上述表格中的键值,那么无所谓了,就不用修改了。
通过在这里添加的存储名称,系统会自动帮我们在建立一个属性:

     public string saveFoldPath {get {return ((string)(this["saveFoldPath"]));}}

但我们使用的时候,如果要存储,上面的类是不满足要求的,因为很显然,上面的saveFoldPath是只读的,如果我们要让它具备写的特性,那么就必须手动增加set代码,如下:

     public string saveFoldPath {get {return ((string)(this["saveFoldPath"]));}set {this["saveFoldPath"] = value;}}

文章原出处: https://blog.csdn.net/haigear/article/details/141424438

二、在主程序中调用

1、读取

如果你仅仅是想读取刚刚表格中的内容,超级简单(以前老版本的VS可能比较复杂一些,需要建立一个配置管理对象,而VS2022版就人性化了,不需要建立一个配置管理对象实例了)

string fpath=Properties.Settings.Default.saveFoldPath;

是不是简单到出奇!!

2、写入

假定我们是要获取选择的文件夹的路径,那么代码如下:

 FolderBrowserDialog folderBrowserDialog= new FolderBrowserDialog();if(DialogResult.OK== folderBrowserDialog.ShowDialog()){Properties.Settings.Default.saveFoldPath = folderBrowserDialog.SelectedPath;Properties.Settings.Default.Save();MessageBox.Show(Properties.Settings.Default.saveFoldPath);}

其实真正写入的动作就两句:

Properties.Settings.Default.saveFoldPath = @"c:\ddd";
Properties.Settings.Default.Save();

还是一句话,超级简单!!
文章原出处: https://blog.csdn.net/haigear/article/details/141424438

3、写入数据不能保存的问题

你可能会遇到写入的数据不能存储的问题,那么一定是你把这里的设置给改成了“应用程序”了,必须改回“用户”!
在这里插入图片描述

好了,超级简单的事情,那就这简单的说完了。本文所描述的代码都是建立在VS2022的IDE中的,希望大家注意,不保证在其他版本中能够正确实现。
文章可能随时更新,请大家关注文章原出处: https://blog.csdn.net/haigear/article/details/141424438

相关文章:

详讲C#中如何存储当前项目的设置-超级简单省事

我们在编写软件的时候总有一些配置数据需要保存,比如用户选择的偏好设置,又如软件所用到的数据库文件等。我们有很多中方式都可以保存,比如直接保存在某个文本文件,或者ini文件中,其实最简单的办法是保存在项目的资源文…...

【QT文件操作】---xml文件读取

XML(可扩展标记语言,eXtensible Markup Language)是一种用于存储和传输数据的文本格式,广泛用于配置文件、数据交换和文档表示。XML 文件具有明确的结构和标记,这使得它能够描述复杂的层次结构和数据关系。 xml和html…...

科研软件 | Diamond 4.6 安装教程

软件介绍 Diamond一个化学专业软件。它是一款在原子水平实现晶体结构可视化的软件,包括分子和聚合物扩展、多面体、搜索结构数据、自动和批量创建结构图片等功能,支持晶体结构着色和渲染以及批注。 软件下载 https://pan.quark.cn/s/37214b5bec7c 软…...

利用keepalived达成服务高可用

官方网站Keepalived for Linux 1.keepalived简介 vrrp 协议的软件实现,原生设计目的为了 高可用 ipvs 服务 功能: 基于 vrrp 协议完成地址流动 为 vip 地址所在的节点生成 ipvs 规则 ( 在配置文件中预先定义 ) 为 ipvs 集群的各 RS 做健康状态检测 …...

Dumpy:一款针对LSASS数据的动态内存取证工具

关于Dumpy Dumpy是一款针对LSASS数据的动态内存取证工具,该工具专为红队和蓝队研究人员设计,支持重新使用打开的句柄来动态转储 LSASS。 运行机制 Dumpy可以动态调用 MiniDumpWriteDump 来转储 lsass 内存内容。此过程无需打开 lsass 的新进程句柄&…...

TinyEngine是什么?

TinyEngine 是 OpenTiny 项目下的一个开源低代码引擎,旨在帮助开发者快速构建应用程序。它提供了可视化搭建页面的能力,支持在线实时构建和二次开发或集成,适用于多种场景的低代码平台开发,例如资源编排、服务端渲染、模型驱动、移…...

FPGA跨时钟域处理

文章目录 一、为什么要做跨时钟域处理二、单bit信号从慢时钟到快时钟处理2.1 使用同步寄存器链(打两拍)2.2 仿真代码编写2.3 仿真结果观察 三、单bit信号从快时钟域到慢时钟域处理3.1 使用脉冲展宽3.2 仿真代码编写3.3 仿真结果观察 四、在任意时钟域跨单bit信号4.1 使用握手协…...

【Docker深入浅出】Docker镜像

文章目录 一. Docker镜像简介二. Docker镜像详解1. 镜像和容器的关系2. 镜像通常比较小3. 拉取镜像4. 镜像命名4.1. 镜像仓库服务4.2. 官方和非官方镜像仓库4.3. 镜像的命名和标签 5. 为镜像打多个标签6. 过滤镜像内容6.1. 虚空镜像6.2. 删除虚空镜像6.3. 过滤器与格式化输出 7…...

“LOCAL_LISTENER”参数导致业务无法连接数据库,文末附Oracle连接故障检查监听的排查流程

1. 背景及问题 今天在Oracle BCV技术[1]做数据同步,建立生产库的测试库,需要DBA配合同步前后的停库和起库。在同步完起库后,有部门反应同步好的测试库连接不上去。 2. 问题排查 以我当前的知识储备,能想到的可能就是以下几点进…...

Vmware虚拟机接入物理机路由器网络

网络适配器增加至两个,一个选NAT, 另一个选host-only,再加一个桥接,不勾选使用物理网卡,然后重启即可!...

yolov8旋转框+关键点检测

一、Yolov8obb_kpt -----------------------------------现已在v8官方库上更新旋转框分割算法和旋转框关键点检测算法-------------------------- ------------------------------------------- https://github.com/yzqxy/ultralytics-obb_segment---------------------------…...

Qt-QWidget的windowTitle属性(13)

目录 描述 相关API 使用观察 描述 这个我们之前用过很多次了,就不再赘述了,简单说就是可以给那个边框设置标题,但是这里有一个小细节需要我们注意,就是谁的窗口谁设置 相关API 使用观察 我们这样写的话会发现一个问题&#x…...

RCE编码绕过--php://filter妙用

目录 代码 如何绕过 payload构造 代码 <?php $content <?php exit; ?>; $content . $_POST[txt]; file_put_contents($_POST[filename],$content); 当你想要输入代码的时候前面会有<?php exit;?>;&#xff0c;代码没有办法执行下去&#xff0c;所以…...

FactoryBean 与 BeanFactory

首先从字面理解: FactoryBean -->工厂Bean&#xff1b; BeanFactory -->Bean工厂。 即&#xff1a; FacttoryBean 是一个bean&#xff0c; BeanFactory 是bean的工厂。 使用&#xff1a; 1、BeanFactory&#xff1a; 提供获取bean的API。 2、FactoryBean&#xff1a; p…...

【迅为RK3568开发板】OpenHarmony学习开发系列教程(第2期 南向基础篇一)

P1P1_搭建Ubuntu开发环境-8:23 P2P2_获取OpenHarmony源码-10:21 P3P3_初次编译OpenHarmony源码-7:11 P4P4_OpenHarmony镜像简介以及烧写工具配置-9:18 P5P5_优化开发流程-搭建windows开发环境-5:34 P6P6_优化开发流程-搭建ubuntu开发环境-2:09 P7P7_优化开发流程-配置远程访问环…...

编程修炼之Hibernate--- springboot启动初始化ddl过程与如何自定义修改 table 字段长度

文章目录 springboot启动初始化ddl过程如何自定义修改 table springboot启动初始化ddl过程 跟踪Springboot整合hibernate的启动代码&#xff1a; SessionFactoryImpl 的初始化里做了非常多的事情&#xff0c;初始化各种资源&#xff0c;并调用 SchemaManagementToolCoordinat…...

TOMCAT入门到精通

目录 一 WEB技术 1.1 HTTP协议和B/S 结构 1.2 前端三大核心技术 1.2.1 HTML 1.2.2 CSS&#xff08;Cascading Style Sheets&#xff09;层叠样式表 1.2.3 JavaScript 二 WEB框架 2.2后台应用架构 2.2.1单体架构 2.2.2微服务 2.2.3单体架构和微服务比较 三 tomcat的…...

Android笔试面试题AI答之Kotlin(18)

文章目录 86. 阐述Kotlin中性能优化之局部函数 &#xff1f;局部函数的优点间接的性能优化注意事项 87. 简述Kotlin中性能优化之数组使用 &#xff1f;1. 选择合适的数组类型2. 避免不必要的数组创建3. 优化数组访问4. 合理使用数组遍历方式5. 利用Kotlin的集合操作API6. 注意数…...

Linux基础知识学习(五)

1. 用户组管理 每个用户都有一个用户组&#xff0c;系统可以对一个用户组中的所有用户进行集中管理&#xff08;开发、测试、运维、root&#xff09;。不同Linux 系统对用户组的规定有所不同&#xff0c;如Linux下的用户属于与它同名的用户组&#xff0c;这个用户组在创建用户…...

股票买卖的思路与代码

题目 1302&#xff1a;股票买卖 时间限制: 1000 ms 内存限制: 65536 KB 提交数:8660 通过数: 4290 【题目描述】 最近越来越多的人都投身股市&#xff0c;阿福也有点心动了。谨记着“股市有风险&#xff0c;入市需谨慎”&#xff0c;阿福决定先来研究一下简化版的股…...

设计器模版底图,一直渲染错误,是因为第一张图变形后内存中图片数据被改了,其他尺码一直错误

这其实是你们现在更需要的组合&#xff1a;不是只看 decode()&#xff0c;而是再确认“这次 decode 对应的还是当前这张图”。再确认“这次 decode 对应的还是当前这张图” 是怎么做到的&#xff0c;详细列举代码我直接从现在这次改动的代码里&#xff0c;把"确认图片身份…...

物联网设备安全:硅基硬件防护方案解析

1. 物联网设备安全现状与挑战在智能家居、工业自动化、医疗监测等领域&#xff0c;物联网设备正以惊人的速度普及。根据IDC的调研数据&#xff0c;超过27%的企业在选择物联网供应商时将安全能力作为首要考量标准。然而现实情况是&#xff0c;大多数物联网设备仍在使用软件层面的…...

光伏电站实现IEC104数据采集远程监控系统案例

在某山地光伏电站&#xff0c;由于占地广阔且地处丘陵地带&#xff0c;植被茂密、地形起伏大&#xff0c;运维团队在进行设备巡检时十分劳累&#xff0c;工作强度较大&#xff0c;数据汇总缓慢&#xff1b;同时对于突发的异常故障往往不能及时发现并采取措施&#xff0c;各种因…...

从学生到工程师:我如何用大学单片机课设代码搞定第一个嵌入式项目(STM8实战)

从学生到工程师&#xff1a;STM8实战中如何将课设代码升级为工业级解决方案 记得大三那年&#xff0c;我第一次在实验室里点亮STM8开发板的LED时&#xff0c;那种成就感至今难忘。但当我真正进入企业参与嵌入式项目开发时&#xff0c;才发现学校里的"标准答案"在真实…...

系统发育树可视化终极指南:用TreeViewer轻松创建专业级进化树

系统发育树可视化终极指南&#xff1a;用TreeViewer轻松创建专业级进化树 【免费下载链接】TreeViewer Cross-platform software to draw phylogenetic trees 项目地址: https://gitcode.com/gh_mirrors/tr/TreeViewer 你是否曾为系统发育树的可视化而烦恼&#xff1f;面…...

JD-GUI深度解析:Java字节码逆向工程的瑞士军刀

JD-GUI深度解析&#xff1a;Java字节码逆向工程的瑞士军刀 【免费下载链接】jd-gui A standalone Java Decompiler GUI 项目地址: https://gitcode.com/gh_mirrors/jd/jd-gui 在Java开发的世界里&#xff0c;我们常常需要面对只有字节码没有源码的困境——第三方库的调试…...

基于Lepton AI构建对话式搜索引擎:RAG技术实践指南

1. 项目概述&#xff1a;用Lepton AI构建你的对话式搜索引擎 如果你对AI应用开发感兴趣&#xff0c;尤其是想快速搭建一个能理解自然语言、并能联网搜索的智能助手&#xff0c;那么“Search with Lepton”这个项目绝对值得你花时间研究。它本质上是一个开源的对话式搜索引擎框…...

教育科技产品集成AI答疑功能的技术方案与接入实践

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 教育科技产品集成AI答疑功能的技术方案与接入实践 在在线教育领域&#xff0c;为学生提供即时、准确的答疑服务是提升学习体验和效…...

AI写专著的技巧与工具:一键生成20万字专著,开启写作新体验!

学术著作的严谨性离不开丰富的资料和数据支撑&#xff0c;但资料的搜集和数据的整合恰恰是撰写过程中最繁琐且耗时的环节。进行研究的学者需要全面搜索国内外的最新文献&#xff0c;确保所选文献既权威又相关&#xff0c;并追溯到原始来源&#xff0c;避免出现二次引用的错误&a…...

SimCSE中文实战避坑指南:从数据准备、模型训练到效果评估的完整流程

SimCSE中文实战避坑指南&#xff1a;从数据准备到效果评估的全流程解析 在自然语言处理领域&#xff0c;语义相似度计算一直是核心挑战之一。SimCSE作为一种简单却高效的对比学习方法&#xff0c;近年来在中文场景下展现出惊人的潜力。但当你真正尝试将其应用于自己的中文项目时…...