由于某些原因,在我当前的项目中,我通过项目属性创建了我的资源文件,添加了大量现有图像。然后将这些图像添加到菜单项,保存。此时一切看起来都很好,图像都正确映射。
然而,一旦我关闭该表单的设计器,然后打开它我会得到错误对话框说:
The type 'My.Project.Properties.Resources' has no property named 'icon_plus'.
令人讨厌的是,如果你按照代码进行操作就没有错误,那就编译好了:
this.newToolStripMenuItem.Image = global::My.Project.Properties.Resources.icon_plus;
我尝试删除所有资源并从项目中删除资源文件,完全关闭IDE然后重新加载它。我已经移动了文件的位置,但我只是出于想法,它真的开始感谢大约10个表单和控件,每个给我这个错误,他们从UI中删除图标。
答案 0 :(得分:17)
查看项目引用,并删除对self的引用。
答案 1 :(得分:4)
这是非常讨厌的问题之一,在我遇到另一个导致我改变事情的问题之前,我从未想过这个问题。
似乎使用.net 4的客户端配置文件而不仅仅是默认的.net 4运行时来到应用程序。一旦我改变了这个问题,这个问题就停止了,而我最近出现的另一个缺少的命名空间问题就消失了。
答案 2 :(得分:3)
这对我有用。 (尝试了一切,没有欢乐。)
当我第一次启动项目时,项目属性中指定的默认namespace
为MyProject
。 (所以我的大多数课程看起来像namespace
MyProject{ public class foo{} }
后来我将类的命名空间从MyProject
更改为CompanyName.MyProject
这也是问题发生的时候。
在我的情况下,我不得不回到Project Properties
并更改实际条目
在Default namespace
到CompanyName.MyProject
砰,没有问题。
答案 3 :(得分:2)
最有可能发生命名空间冲突。
仔细检查项目中的所有命名空间,VS喜欢做'ProjectName.FolderName'。如果它将Icon文件夹中的某个类/资源文件自动更改为ProjectName.Icon,则可能与类/结构名称冲突。
有趣的是应用程序构建..
答案 4 :(得分:1)
我遇到了同样的问题。 VS不会加载任何表单对象。我尝试了所有其他方法而没有结果。
之前我将所有私有全局变量更改为公共属性。
public Textbox exampleTextBox { get; set; }
我出于多种原因这样做,但设计师的观点并不喜欢它。我相信它必须有一些解析问题。
对象必须是全局变量而不是属性。
public Textbox exampleTextBox;
这修复了我的设计师观点。
答案 5 :(得分:1)
我找到了另一种方式
在私有方法中移动初始化表单代码,如下所示
private void FormInitialize(){/*Your code here*/}
在表单构造函数中使用它
public Form1()
{
InitializeComponent();
FormInitialize();
}
从Button,menuItem或其他类似的调用方法
private void ChangeCultureToFrench_Click(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr");
this.Controls.Clear();
this.InitializeComponent();
FormInitialize();
}
我希望这有帮助; - )
答案 6 :(得分:0)
我之前遇到过这个错误。当我添加资源,然后把它拿走或者修改它时,它就出现了。我发现我可以解决这个问题的唯一方法是打开.csproj文件并查找.ico它给出错误并删除它。你正在寻找
<ItemGroup>
<None Include="Resources\SomeResource.ico" />
</ItemGroup>
在此之后,保存文件。打开解决方案并重新添加。希望这对你有用。但请注意,这不是理想的解决方案。
编辑:
行。所以这并没有解决你的问题。进入解决方案文件夹并导航到“属性”文件夹。在里面你会看到一个名为resources的文件。打开它并尝试找到有问题的文件名
<data name="YourNamedIco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\SomeResource.ico;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
如果你找到它,请删除它,保存。
我希望这会有所帮助。
答案 7 :(得分:0)
我和你有同样的问题,虽然我使用的“解决方案”甚至可能不会这样称呼。我确实知道我为它添加了一些安装项目,并将其删除,同时摆弄了一些图像的构建操作。
我用过的解决方案?删除当前项目,并恢复到最新的备份,该备份没有问题。当然,这只有在您备份项目解决方案时才有效。
如果您确实备份了项目解决方案,请仅尝试使用此方法作为最后的手段。
答案 8 :(得分:0)
我没有尝试所有其他答案。
最终似乎对我有用的是通过右键单击您的项目进行“卸载项目”,然后“重新加载项目”。在检查我的.cs [Design]
是否正常工作之前,我还通过右键单击解决方案资源管理器中的项目然后单击“重命名”将我的项目重命名为其他项目。
不要问我为什么这样做......
答案 9 :(得分:0)
打开 Resources.resx 文件并添加新图像,然后构建您的解决方案/项目。错误将消失。