C#使用编译器常量排除完整表单/ usercontrol

时间:2009-12-17 11:03:10

标签: c# winforms user-controls

我想在我的项目中排除/包含一个完整的表单。但是当我添加所需的#if CONST#endif时,编译器会抱怨可能出错名称的资源。

  

警告MSB3042:在“Form1.cs”文件中的条件编译指令中找到了命名空间或类定义。这可能导致资源“Form1.resx”的清单资源名称选择不正确。

这是什么意思?

我该如何解决?

3 个答案:

答案 0 :(得分:4)

  • 说明: 普通表单(从模板创建)由2个.cs文件和.resx文件组成。 通过消除Form1类,您可以“孤立”资源。

  • 解决方法:

    1. 制作一个没有资源文件的简单表格。
    2. 使用#else标记为Form1类创建空存根
    3. 忘记这个想法,只消除程序其余部分使用表格的(少数)点。

我赞成3,您对删除表单有什么好处?

答案 1 :(得分:0)

如果您没有设置图片而您没有使用resx进行翻译(即您的表单不可本地化),请尝试删除您的Form1.resx。

答案 2 :(得分:0)

移动您的#if CONST / #endif区域,使其位于派生的表单类声明中,该声明包含Form1.cs中部分类的全部内容。默认的构造函数将接管,您的警告将消失。