winform 程序的配置文件——App.config

2023-11-12

winform 程序的配置文件——App.config

Posted on 2005-09-26 17:11 sashow 阅读(668) 评论(3)   编辑  收藏 引用 网摘 所属分类: c# 编程

        在做 web 项目的时候,我一直在用 web.config ,觉得这个东西实在不错。偶然间发现,原来 winform 项目也有一个类似于 web.config 的文件——app.config,和呵,不胜欣喜!

一、添加app.config
        方法一:手工添加
         要添加这个文件很简单,执行如下操作就可以了:在开发环境中选择“项目”——>“添加新项”——>“XML 文件”,输入xml 文件的名称为 app.config。
        然后就可以如同 web.config 一样,编辑 app.config 文件,以及在应用程序中读、写该配置文件。
        重新编译项目,在应用程序的运行目录下会生成一个 app.config 的副本,名称为:程序名.exe.config。
        方法二:系统自动添加
        假设我们现在要使用 app.config 来动态配置一个 label 的 text 属性,那么,在label的属性窗口中选择如下图的属性进行配置,那么就可以让系统自动添加一个 app.config 的文件,呵呵,很省事的了。


二、编辑和使用app.config
        1、增加自定义的键值
        这个当然是增加<appSettings>标签了。下面给个例子:

<? xml version = " 1.0 "  encoding = " utf-8 " ?>  
< configuration >
    
< appSettings >
        
< add key = " port "  value = " 5450 " / >
        
< add key = " Thread "  value = " 20 " / >
    
</ appSettings >
< configuration >
        在这里我设置了一个叫做 port 和 Thread 的键,用来表示通讯端口和允许的最大线程数。
        根据应用的需要,我们可以添加许多需要动态配置的信息,如数据库连接字符串等。

        2、编辑系统原有的属性
        在下面的代码中,我配置了系统调试信息,这个东西挺不错的,可以将系统运行时输出的调试信息放置到一个文件。在我们使用 try ... catch 的时候,将 catch 到的信息输出给用户并不理想,因为用户看到一大堆的错误信息会感到很头痛,他们只希望知道操作成功还是没有成功。所以,将运行时的错误信息放置到文件是不错的选择。代码如下:
<? xml version = " 1.0 "  encoding = " utf-8 " ?>  
< configuration >
< system.diagnostics >
    
< switches >
        
< add name = " MagicTraceSwitch "  value = " 3 "   />
    
</ switches >
    
< trace autoflush = " true "  indentsize = " 4 " >
        
< listeners >
           
< add name = " myListener "  type = " System.Diagnostics.TextWriterTraceListener "  initializeData = " myListener.log "   />
           
< remove type = " System.Diagnostics.DefaultTraceListener "   />  
        
</ listeners >
    
</ trace >
</ system.diagnostics >
</ configuration >
测试代码如下:

 1 using  System;
 2 using  System.Drawing;
 3 using  System.Collections;
 4 using  System.ComponentModel;
 5 using  System.Windows.Forms;
 6 using  System.Data;
 7
 8 using  System.Diagnostics ;
 9 using  System.Configuration ;
10
11 namespace  AppTest
12 {
13    /**//// <summary>
14    /// Form1 的摘要说明。
15    /// </summary>

16    public class Form1 : System.Windows.Forms.Form
17    {
18        private System.Windows.Forms.Button button1;
19        /**//// <summary>
20        /// 必需的设计器变量。
21        /// </summary>

22        private System.ComponentModel.Container components = null;
23
24        public Form1()
25        {
26            //
27            // Windows 窗体设计器支持所必需的
28            //
29            Debug.WriteLine ("初始化 Form1");
30            InitializeComponent();
31
32            //
33            // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
34            //
35        }

36
37        /**//// <summary>
38        /// 清理所有正在使用的资源。
39        /// </summary>

40        protected override void Dispose( bool disposing )
41        {
42            Debug.WriteLine ("清理资源.");
43            if( disposing )
44            {
45                if (components != null
46                {
47                    components.Dispose();
48                }

49            }

50            base.Dispose( disposing );
51        }

52
53        Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
54        /**//// <summary>
55        /// 设计器支持所需的方法 - 不要使用代码编辑器修改
56        /// 此方法的内容。
57        /// </summary>

58        private void InitializeComponent()
59        {
60            System.Configuration.AppSettingsReader configurationAppSettings = new System.Configuration.AppSettingsReader();
61            this.button1 = new System.Windows.Forms.Button();
62            this.SuspendLayout();
63            // 
64            // button1
65            // 
66            this.button1.Location = new System.Drawing.Point(128128);
67            this.button1.Name = "button1";
68            this.button1.TabIndex = 0;
69            this.button1.Text = "button1";
70            this.button1.Click += new System.EventHandler(this.button1_Click);
71            // 
72            // Form1
73            // 
74            this.AutoScaleBaseSize = new System.Drawing.Size(614);
75            this.ClientSize = new System.Drawing.Size(292266);
76            this.Controls.Add(this.button1);
77            this.Name = "Form1";
78            this.Text = ((string)(configurationAppSettings.GetValue("Form1.Text"typeof(string))));
79            this.ResumeLayout(false);
80
81        }

82        #endregion

83
84        /**//// <summary>
85        /// 应用程序的主入口点。
86        /// </summary>

87        [STAThread]
88        static void Main() 
89        {
90            Debug.WriteLine ("启动应用程序.");
91            Application.Run(new Form1());
92        }

93
94        private void button1_Click(object sender, System.EventArgs e) {
95            MessageBox.Show (ConfigurationSettings.AppSettings ["Port"].ToString ());
96        }

97    }

98}

99

 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

winform 程序的配置文件——App.config 的相关文章

  • Winforms 风格/UI 外观和感觉提示

    从多年的 asp net 开发回到 winforms 应用程序 寻找有关如何 设计 winforms 的建议和技巧 类似于我在 asp net 中使用 CSS 母版页的方式 我对如何在一处更新某些类型的控件的字体 颜色感兴趣 如何保持布局的
  • 如何在构建后事件中获取版本号

    我想使用构建后事件自动创建 nuget 包 然后将其复制到我们网络上的共享文件夹 如下所示 版本号 1 0 0 0 在 MyLib nuspec 文件中指定 nuget exe pack SolutionDir MyLib nuspec x
  • 简单的文档管理系统和API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何让实体框架初始化新创建的实体上的集合?

    我正在尝试用一些测试数据来种子我的数据库IDatabaseIntialiser像这样 protected override void Seed BlogDataContext context
  • SignTool 错误:访问被拒绝

    我尝试在安装了 VS2010 的 Windows Server 2008 R2 x64 上使用新的代码签名证书对 NET 应用程序进行authenticode 签名 但 SignTool 始终响应访问被拒绝 SignTool exe sig
  • 抑制“程序无法启动,因为 X.dll 丢失”错误弹出窗口

    我有一个Python程序 它使用os system来执行各种命令 它不能使用subprocess因为它必须向后兼容到 Python 2 0 在 Windows 上 有时该命令会引用异常目录中的 DLL 因此我会收到臭名昭著的 程序无法启动
  • 在 Windows 上使用 docker compose 进行卷绑定

    我最近在 Windows 10 上升级了 Docker Toolbox 现在我的卷挂载不再起作用 我已经尝试了一切 这是当前的挂载路径 volumes C Users Joey Desktop backend var www html 我收
  • 无法从 Windows 7 上的 Windows 服务启动桌面应用程序

    HI 我在 Windows 7 上有 C WCF Windows 服务 以具有管理员权限的用户身份登录 我正在尝试在服务启动后启动桌面应用程序 我发现的所有讨论都是关于 Windows 工作站和桌面 我创建了一个单独的线程 设置线程工作站和
  • 为什么 .NET 异步等待文件复制比同步 File.Copy() 调用消耗更多 CPU?

    为什么下面的代码会产生 public static class Program public static void Main params string args var sourceFileName C Users ehoua Desk
  • asp.net net.mail - 在调试模式下将所有电子邮件路由到不同的电子邮件地址

    无论如何 有没有办法让所有电子邮件发送到不同的地址System Web HttpContext Current IsDebuggingEnabled是真的 或者我是否需要一个新的类来用于到处发送电子邮件 我会设置一个 SMTP 服务器 并让
  • 多个 Visual Studio 项目抱怨临时文件丢失,因此无法打开。错误代码 &H80070003

    我在终端服务器上运行 Visual Studio 2010 并且已经运行了一段时间 问题相对较少 今天早上 我启动了我的电脑 在英国的长周末期间 似乎出现了以下问题 我有很多项目 但不是我的所有项目 也不是给定解决方案中的所有项目 抱怨无法
  • 具有用于角色授权的空间的 AD 组

    我正在尝试获得与 AD 组合作的角色授权 然而 由于它包含空格 它似乎不起作用 我尝试过没有空格的 AD 组 它们工作得很好
  • FOREACH返回的对象顺序稳定吗?

    是否可以安全地假设对同一集合的两次迭代将以相同的顺序返回对象 显然 假设集合没有被更改 这取决于集合类型 对于大多数集合来说 答案是 是 然而 这并不能得到保证 集合类型的文档应该指定它是否这样做 但正如大多数人所做的那样 该细节通常被忽视
  • GOPATH值设置

    我用go1 3 1 windows amd64 msi安装go 安装后GOROOT是默认设置 我发现 D Programs Go bin 在 PATH 中 然后我创建一个 GOPATH 环境变量 使用 go get 命令时 出现错误 软件包
  • 如何使用Python在没有窗口的情况下在屏幕上显示文本

    问题 我需要在没有窗口的情况下直接将文本写入屏幕 文本需要显示在所有其他窗口和全屏应用程序之上 并且不应以任何方式单击或交互 Example The text doesn t need to have a transparent backg
  • 已安装全局 NPM 包但未找到命令

    我已经全局安装了两个 npm 包 下载 https www npmjs com package download and 谜虚拟盒 https www npmjs com package enigmavirtualbox通过命令行 npm
  • Parallel.For 和 Break() 误解?

    我正在研究 For 循环中的并行性中断 看完之后this http tipsandtricks runicsoft com CSharp ParallelClass html and this http reedcopsey com 201
  • 黑色左/右三角形大小不同

    我使用黑色左指三角形 右左指三角形几何形状作为网站上的链接 并使用它们的 HTML 代码 和 9664 9654 由于某种原因 即使我在没有其他元素的空白页面上使用三角形 它们也不会以相同的大小显示 在 Chrome 上 向左指向的位置比向
  • lambda 表达式是多线程的吗?

    lambda 表达式是多线程的吗 假设当你将数学公式编写为 lambda 方法时 当你将其传递给另一个方法时 它会是多线程的吗 不是100 清楚你问的是什么 您是否想问 lambda 是否自然地在不同的线程上运行 如果是这样 则它们只是 S
  • Unix 命令“host” - Windows 中有等效命令吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在一台 Windows 7 机器上 按照本文指示我使用 Unix 命令 host https devcenter heroku com

随机推荐

  • ZooKeeper的一个性能测试

    2011 07 15 18 07 00 3台ZooKeeper服务器 8核64位jdk1 6 log和snapshot放在不同磁盘 场景一 同一个目录下 先createEPHEMERALnode 再delete create和delete各
  • 人脸识别技术成熟加速终端设备技术扩展

    脸支付的应用 已经对我们的生活带来了很多便利 除了金融 现在商超等场景 也大多添加了刷脸支付设备 无需拿出手机 不用担心手机没电 刷脸即可支付 人脸识别技术的成熟 也加速了在终端设备的技术扩展速度 现在的刷脸设备 除了基本的支付功能 还融合
  • xxx.jar中没有主清单属性解决办法

    在springboot中的pom xml文件中引入
  • MyEclipse下配置WebLogic10(转)

    MyEclipse下配置WebLogic10 转 安装 WebLogic 比较容易 在这里就不再累述了 大家可以参阅相关文档 现在着重讲一下 WebLogic 的配置 因为后面在配置 MyEclipse 时将用到这里的配置信息 运行开始 g
  • 【Bug记录】Fail to create pixmap with Tk_GetPixmap in TkImgPhotoInstanceSetSize

    Bug记录 项目场景 问题描述 解决方案 项目场景 绘图代码出现Fail to create pixmap with Tk GetPixmap in TkImgPhotoInstanceSetSize 问题描述 在测试网络时出现此Bug 可
  • 机器数的原码、反码、补码、移码表示以及浮点数的二进制表示

    初学计算机组成原理时 有点儿搞不清楚机器数的各种表示方法 今天在这里总结一下 希望对大家有帮助 首先明确两个概念 机器数是指将 和 数字化的数 其中用 0 表示 1 表示 而对应的有 和 的数则称为真值 机器数的表示方法 1 原码表示法 符
  • debug模式下,一个30的for循环直接从i=1跳到你想要的数字(i=10)

    废话不多说 直接上图 1 先创建一个for循环 debug模式运行 在for循环中间打断点 我们可以看出刚运行的时候i 0 2 点击 debug 下一步 或者F6 直到他显示这个variables 这时 我们可以对i进行任意的修改你想要的数
  • 【Python】 14-CVS文件操作

    1 CVS文件 值没有类型 所有东西都是字符串 没有字体大小或颜色的设置 没有多个工作表 不能指定单元格的宽度和高度 不能合并单元格 不能嵌入图像或图表 CSV 文件中的每个单元格 有逗号分割 也许你可以只是对每行文本调用 split 方法
  • Google Pixel 3玩机教程

    说到谷歌的亲儿子Pixel系列 你一定就会想到安卓原生系统 现在我将会教你如何使用pixel去root并且破解电信 第一步 解锁手机 1 打开手机的开发者选项 选择OEM解锁 打开它 再把USB调试打开 2 在电脑上的google deve
  • GPIO的开漏和推挽

    GPIO的开漏和推挽 简单来说推挽输出可以自由输出高低电平 开漏输出只能在关闭时配合上拉提高高电平 打开时漏掉电流形成低电平 操作单片机点亮一个LED的时候我们需要操作GPIO输出一个高电平来点亮一个LED 当我们打开用户手册时会发现GPI
  • OR-Tool 报INFEASIBLE

    OR Tool 使用Minimum Cost Flows报 There was an issue with the min cost flow input Status Status INFEASIBLE 这是因为node的编号需要是连续的
  • 肺炎疫情攻防战--肺炎X光病灶识别 Pytorch baseline

    肺炎疫情攻防战 肺炎X光病灶识别 Pytorch baseline 刚从Keras转Pytorch没多久 一边看着文档一边Google完成这比赛的baseline 比赛地址 比赛简介 本次由2019 nCoV病毒引发的肺炎疫情仍在持续 AI
  • 使用Hugging Face管道轻松应用NLP预训练模型

    这一段时间在研究自然语言处理 一直想找一些预训练模型 发现这个非常全 就收藏好好研究 作者 Robin van Merle 编译 VK 来源 Towards Data Science 原文链接 https towardsdatascienc
  • VMware中NET模式无法获取IP地址

    0x00 打开我的kali尝试运行脚本时 发现无论是桥接还是NET都无法获取到IP地址 经过各种百度以及尝试 最终解决 因此在此写下文章来记录一下 如果你也遇到相同问题 希望可以帮助到你 0x01 先看一下在NET下无法获取到地址的情况 此
  • react-create-app 基于 react-app-rewired scss设置全局变量全局函数

    目录 重写react脚手架配置 使用 scss 引用全局 scss 文件中的变量和函数应用全局 测试 重写react脚手架配置 customize cra 合并配置 react app rewired 重写react脚手架配置 安装依赖 n
  • 镜头桶形失真校正算法

    短焦镜头通常会产生桶形失真 以下是校正算法的matlab代码 cpp view plain copy 镜头桶形失真校正 短焦镜头 img origin1 imread Still001 bmp img origin rgb2gray img
  • day01fs模块

    一 文件操作 一 文件删除 1 异步 fs unlink path callback fs unlink hello txt err gt console lo err 回调函数参数err返回错误信息或者null 2 同步 fs unlin
  • 计算机enter代表什么意思,enter是什么意思

    手机评站网今天精心准备的是 enter是什么意思 下面是详解 电脑上键盘上enter是什么意思 在电脑键盘上带有 Enter 字样并有一弯箭头的按键 被叫做 回车键 其形状如下图所示 其位置在引号键的右边 另一个位置在数字键盘的右下角 在文
  • vue结合Waterfall做图片瀑布流展示

    一 安装Waterfall npm install vue waterfall plugin s 二 在组件中引入并使用
  • winform 程序的配置文件——App.config

    winform 程序的配置文件 App config Posted on 2005 09 26 17 11 sashow 阅读 668 评论 3 编辑 收藏 引用 网摘 所属分类 c 编程 在做 web 项目的时候 我一直在用 web co