我有一个 C# 应用程序,其中我的一个表单图标在设计器中可见,但在运行时恢复为默认图标。有问题的表单是派生表单,没有自己的 .designer.cs 文件,派生表单 .cs 文件为空。表单图标在设计器中正确显示,但在运行时图标丢失。
派生形式与基本形式在不同的项目中。基本表单图标是通过设计器添加的,并且未对基本 .designer.cs 文件进行任何修改。
有什么想法可能导致这种情况吗?
在混了一会儿之后,我认为我的问题与 VS 中的这个错误有关:https ://connect.microsoft.com/VisualStudio/feedback/details/106264/mdi-form-icon-formborderstyle-windowstate-maximized#tabs
我通过将 Icon 重新添加到派生表单(使用设计器)来解决我的问题,然后还必须添加一个 _Load 处理程序,其中包含以下内容
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MyForm));
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
做这项工作,虽然我不喜欢 hacky 变通办法!