zoukankan      html  css  js  c++  java
  • [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;
    }

  • 相关阅读:
    移动端开发案例【4】“我的”页面开发
    项目管理【16】 | 项目范围管理-控制范围
    项目管理【15】 | 项目范围管理-确认范围
    项目管理【14】 | 项目范围管理-创建工作分解结构(WBS)
    项目管理【13】 | 项目范围管理-定义范围
    各个计算复杂度公式图像
    【论文笔记】2020WACV
    【论文笔记】2020CVPR
    数据降维与可视化——t-SNE
    【论文笔记】2019CVPR-Unsupervised learning of action classes with continuous temporal embedding
  • 原文地址:https://www.cnblogs.com/McQueen1987/p/3713149.html
Copyright © 2011-2022 走看看