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

news2024/11/25 2:45:34

我们在编写软件的时候总有一些配置数据需要保存,比如用户选择的偏好设置,又如软件所用到的数据库文件等。我们有很多中方式都可以保存,比如直接保存在某个文本文件,或者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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2063685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

File的常见成员方法(创建,删除)

一.File的常见成员方法(创建,删除): 二.方法的代码实现: 1.createNewFile方法->创建一个新的空的文件: 如上图直接调用createNewFile方法会报错,处理方案如下: 本例选择第一个&a…

Kotlin OpenCV 图像图像51图片轮廓获取

Kotlin OpenCV 图像图像51图片轮廓获取 在OpenCV库中,Imgproc.adaptiveThreshold、Imgproc.findContours 和 Imgproc.boundingRect 这三个方法在图像处理和分析中非常有用。以下是它们的详细作用: Imgproc.adaptiveThreshold解释作用该方法用于将灰度图…

工业排污检测算法的算法样本及工业排污检测的源码展示

工业排污检测算法是一种结合了先进人工智能、图像识别、声音识别、数据分析等技术的解决方案,专门用于实时监测和评估工业排放的污染物。这种算法在环境保护、合规管理、数据支持等方面具有显著的优势,并且可以广泛应用于各种工业场景。 主要作用 1、实…

宝塔面板本地搭建Typecho博客结合内网穿透实现远程访问本地站点

文章目录 前言1. 安装环境2. 下载Typecho3. 创建站点4. 访问Typecho5. 安装cpolar6. 远程访问Typecho7. 固定远程访问地址8. 配置typecho 前言 本文主要介绍如何通过Linux centOS8宝塔面板工具,本地搭建一个Typecho个人博客网站。并结合cpolar内网穿透工具配置公网…

关于Arrays.asList返回List无法新增和删除?

这个是在写项目的时候发现的&#xff0c;然后就分析了一下源码&#xff0c;得其内部原理 复现代码示例&#xff1a; public class ArraysAsList {public static void main(String[] args) {Integer[] array {1, 2, 3, 4, 5};List<Integer> list Arrays.asList(array);…

html+css+js网页制作 电商小米商城7个页面

htmlcssjs网页制作 电商小米商城7个页面 ui还原度百分之99 网页作品代码简单&#xff0c;可使用任意HTML编辑软件&#xff08;如&#xff1a;Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作&#xff09;。 …

uniapp/uniapp x总结

uni-app组成和跨端原理 上图所诉 App的渲染引擎&#xff1a;同时提供了2套渲染引擎&#xff0c;.vue页面文件由webview渲染&#xff0c;原理与小程序相同&#xff1b;.nvue页面文件由原生渲染&#xff0c;原理与react native相同。开发者可以根据需要自主选择渲染引擎。 uniapp…

STM32f407 网络接收 fpga 的 bin 文件并更新到 fpga series7(2)

STM32f407 网络接收 fpga 的 bin 文件并更新到 fpga series7(2) 简介 实验 2&#xff1a;在单片机搭建好 tcp 服务器后&#xff0c;编写传送文件的上位机。 整体实现 - 利用qt的tcpsocket简单封装 - 每次发送512字节&#xff0c;这样小的tcp包就不会自动分包。保证每一个51…

多商户商品下单限购问题修复

问题: 当商品设置限购为 1 时,够买数量未超过限购,但是还是提示超出限购数量 修复方法: 修改代码路径: app\common\repositories\store\order\StoreOrderCreateRepository.php 修改代码一: i s p a y s a r r a y u n i q u e ( a r r a y c o l u m n ( is_pays array_un…

阿里一款非常不错的多级缓存框架如何使用?

目录 前言 1. jetcache简介 2. jetcache使用 2. jetcache使用 3. 测试 3.1 方式一测试 3.2 方式二测试 3.3 方式三测试 4.缺点优点 5. 常见报错 前言 大家好&#xff0c;我是月夜枫~~ 在很多大数据、高并发的业务中&#xff0c;像MySql等传统的关系型数据库已经不能适用…

C++ 设计模式(3. 抽象工厂模式)

抽象工厂模式也是一种创建型设计模式&#xff0c;提供了一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类【引用自大话设计模式第15章】基本结构 抽象工厂模式包含多个抽象产品接口&#xff0c;多个具体产品类&#xff0c;一个抽象工厂接口和多个具体…

BMC下使用KVM远程启动java被阻止解决方案

Java程序被阻止 进笔记本控制面板-Java里 安全里把BMC IP地址添加进去 -------------------------------------------- “如有侵权&#xff0c;联系删除”

【2024版】最新JDK下载和安装=保姆级教程,Java环境配置和使用指南,收藏这一篇就够了

大纲 JDK介绍 JDK下载 在线下载 离线下载 JDK安装 验证安装 JDK介绍 JDK&#xff08;Java Development Kit&#xff09;是用于开发Java应用程序的软件开发工具包。它包括&#xff1a;Java虚拟机&#xff08;JVM&#xff09;、Java类库以及其他一些用于开发Java应用程序的工具…

uniapp 获取定位权限及问题解决

目录 步骤一&#xff1a;在manifest.json中配置步骤二&#xff1a;引用文件可多页面复用的处理逻辑代码注意&#xff1a;问题处理&#xff08;1&#xff09;报错信息1&#xff1a;getLocation:fail the api need to be declared in the requiredPrivateInfos fie&#xff08;2&…

本地Docker部署Navidrome音乐服务器与远程访问听歌详细教程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

VueSeamlessScroll 无缝滚动点击事件不生效(需要给复制Dom加样式)

VueSeamlessScroll 无缝滚动点击事件不生效&#xff08;需要给复制Dom加样式&#xff09; 实现效果遇到问题具体实现扩展 实现效果 VueSeamlessScroll 列表无缝滚动&#xff0c;且可以选择某一项进行选中改变背景&#xff0c;并且将选中的数据传到其他接口中 遇到问题 问题…

AgentMD:通过大规模临床工具学习提升语言代理的风险预测能力

人工智能咨询培训老师叶梓 转载标明出处 临床计算器在医疗保健中扮演着至关重要的角色&#xff0c;它们通过提供准确的基于证据的预测来辅助临床医生进行诊断和预后评估。然而&#xff0c;由于可用性挑战、传播不畅和功能受限&#xff0c;这些工具的广泛应用常常受限。为了克服…

如何备份电脑所有数据?有哪些方法值得参考借鉴?

备份电脑所有数据是防护数据丢失和泄密的重要一项措施&#xff0c;备份数据也有不同的方式和工具&#xff0c;正确的工具能帮你省时省力&#xff0c;下面盘点了几个方法&#xff0c;来看哪一种最适合你。 一、使用专业备份软件 第三方服务器文件自动备份软件&#xff1a;如安企…

AI恶搞《黑神话:悟空》爆火!

黑神话简直太火了&#xff0c;各个热搜榜都有它的身影。 单 Steam 上的销量榜就是榜首&#xff0c;同时在线人数突破 200W。 估计周末在线人数更多&#xff0c;能不能破最高同时在线人数记录&#xff0c;拭目以待。 最近有不少人用清影 AI 生成鬼畜视频&#xff0c;我也用《黑…

【精选】基于大数据的___银行信用卡用户的数仓系统的设计与实现(全网独一无二,最新定制)

目录&#xff1a; 关键技术介绍 PYTHON语言简介 大数据介绍 MySql数据库 DJANGO框架 Hadoop介绍 Scrapy介绍 B/S架构 系统的设计 系统总功能模块设计 系统测试 系统测试的目的 软件测试过程 6.3测试用例 参考代码&#xff1a; 为什么选择我&#xff1a; 博主介绍&am…