[C#、winform] FormDesigner.cs报错The variable 'xxxxxx' is either undeclared or was never assigned
背景:
我写了一个App.config配置文件,在里面定义了模块:
<add key="key1" value="std1|std2|std3|std4" />
以实现winform里的一些参数修改的接口;(App.config里的参数类似全局变量,能够比较灵活修改你的一些配置信息)
在FormDesigner.cs类里面,我想使用这个key1参数作为comBox下拉菜单的内容,代码如下:
1: string CB_SSFN_Items = ConfigurationManager.AppSettings["key1"].ToString();
2: string[] Str_CB_SSFN = CB_SSFN_Items.Split(new char[] { '|' });
出现的问题如下:
1:如果运行代码,一切正常,也没什么错误;
2:不运行代码,Form.cs类会出现下面的错误:

如果注释掉这句话:string[] Str_CB_SSFN = CB_SSFN_Items.Split(new char[] { '|' });
就Form.cs就正常显示我画的Form了;
分析:
1:错误不是运行时的,且运行代码没出现任何问题,判断应该是FormDesigner.cs在生成Form时出现了错误,
2:提示说参数CB_SSFN_Items没有被初始化,应该是没有运行代码前提下FormDesigner.cs无法从以下代码:
string CB_SSFN_Items = ConfigurationManager.AppSettings["key1"].ToString();
中得到"key1"对应的value值,导致CB_SSFN_Items为null,未被初始化;
解决方案:
修改以前的代码:
1: string CB_SSFN_Items = ConfigurationManager.AppSettings["key1"].ToString();
2: string[] Str_CB_SSFN = CB_SSFN_Items.Split(new char[] { '|' });
修改后:
1: string CB_SSFN_Items = string.Empty;
2: CB_SSFN_Items = ConfigurationManager.AppSettings["key1"].ToString();
这样就能正常显示Form.cs了。
总结:
form.designer.cs:对应form.cs,实际上是把你通过设计器拖拽过去的控件在这里实现,也就是说实际上你拖一个控件 这边对应生成代码,然后在form的构造器里调用他。所以你接着就可以在form.cs内部访问到这些控件了。
因此不建议在form.designer.cs内添加代码,如果想在窗体第一次load的时候就load某些参数或功能,可以考虑在form.cs类的如下位置:
public Form()
{
InitializeComponent();//窗体初始化函数
addYourFunctionHere();
}
或者你也可以双击form窗体,添加load事件:
private void Form_Load(object sender, EventArgs e)
{
//add the your code HERE;
}
[C#、winform] FormDesigner.cs报错The variable 'xxxxxx' is either undeclared or was never assigned的更多相关文章
- WPF加载Winform窗体时 报错:子控件不能为顶级窗体
一.wpf项目中引用WindowsFormsIntegration和System.Windows.Forms 二.Form1.Designer.cs 的 partial class Form1 设置为 ...
- 远程连接服务器数据库报错:Host ‘XXXXXX’ is blocked because of many connection errors
原文:https://blog.csdn.net/li_li_lin/article/details/72764683 一.我遇到的问题描述 使用Navicat for mysql连接公司的服务器数据 ...
- vue+postcss报错: variable '--primary-color' is undefined and used without a fallback
之前vue-cli3引入postcss的配置: https://www.cnblogs.com/XHappyness/p/7676680.html 发现这么一个问题,我再全局global.css中定义 ...
- eclipse报错“Undefined variable from import: ...”解决方案
环境 eclipse + pydev2.8.2 + python 3.5.1/python 2.7.11 + wxpython3.0 出现原因:原先默认解释器设置为python2,重装了pydev之后 ...
- mysql报错: unknown variable 'sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES'
在修改mysql默认字符集的时候: 1. 需要拷贝/usr/share/mysql下的my-huge.cnf 或者my-small.cnf到 /etc/my.cnf,但是官网说:从5.7.18开始不在 ...
- Oracle安装client客户端报错Environment variable: "PATH"
安装时出行这个错误 Environment variable: "PATH" 解决方法 1.找到你的安装包里的这个路径下的这两个文件 2.用文本方式打开 将里两个文件面所有的102 ...
- Openfire 代码部署报错: Variable references non-existent resource:${workspace_loc:openfire_src}
Variable references non-existent resource:${workspace_loc:openfire_src} -DopenfireHome=“${workspace_ ...
- Oracle 11g安装报错Environment variable: "PATH"
Environment variable: "PATH" - This test checks whether the length of the environment vari ...
- mysql启动报错 "unknown variable 'defaults-file=/etc/my.cnf"
使用指定的my.cnf,而不用默认的/etc/my.cnf文件,可以在启动时,在mysqld_safe后加上参数--default-file=/usr/local/server/mysql2/etc/ ...
随机推荐
- Python - 安全替换字符串模板(safe_substitute) 详细解释
安全替换字符串模板(safe_substitute) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27057339 字 ...
- javascript中字符串常用方法总结
字符串是javascript编程中不可或缺的元素,掌握字符串常用的方法也是我们学习过程中的必经之路,下面我们总结一些最常用的的字符串方法. string.charAt(postion) charAt方 ...
- android之【本地通知Notification】
public class NotificationTest extends Activity { static final int NOTIFICATION_ID = 0x1123; @Overrid ...
- CSS3+HTML5特效6 - 闪烁的文字
先看效果 abcd 这个效果也比较简单,利用keyframes对文字的大小.透明度及颜色做循环显示. CSS <style> @-webkit-keyframes flash { 0%{ ...
- Php设计模式(三):行为型模式part2
原文详见:http://www.ucai.cn/blogdetail/7023?mid=1&f=5 可以在线运行查看效果哦! <接上文> 5.中介者模式(Mediator) : 用 ...
- PHP 2:从一个实例介绍学习方法
原文:PHP 2:从一个实例介绍学习方法 在前面我已经描述了PHP,Apache以及MySQL的安装与配置.下面将介绍一下我如何学习PHP.首先我自己已经有了一些编程经验,就拿我自己而言,已经熟悉C/ ...
- Windows下Oracle不显示中文[已解决]
跟着视频学习,然后讲到插入的时候有中文性别,就GG了,该显示中文的时候都是问号,觉得应该是编码的问题. 于是上网找了下,测试可行,方法如下 1,查询Oracle编码的语句: [sql] SELECT ...
- lucent检索技术之创建索引:使用POI读取txt/word/excel/ppt/pdf内容
在使用lucent检索文档时,必须先为各文档创建索引.索引的创建即读出文档信息(如文档名称.上传时间.文档内容等),然后再经过分词建索引写入到索引文件里.这里主要是总结下读取各类文档内容这一步. 一. ...
- ubuntu下Eclipse无法启动
我的Ubuntu是12.04 LTS版的.jdk是官网下载后解压就可以用的.配置好PATH和CLASSPATH后,双击Eclipse弹出这个窗口: 但是如果通过终端,以命令行的方式执行 ./eclip ...
- 安装Windows2008操作系统 - 初学者系列 - 学习者系列文章
Windows2008这款服务器操作系统不知道有多少服务器在使用,毕竟前面有经典的2003系统,后续有2012操作系统.具体就不讨论这些了.下面就对Windows2008服务器操作系统的安装进行介绍. ...