"无法找到类型的"错误的一种形式,在Windows形式的设计师
-
08-06-2019 - |
题
我有一个.网2.0的windows的应用程序,这使得大量使用 ListView
控制。
我一子类的 ListView
类进入一个模板 SortableListView<T>
类,所以它可以是一位聪明它是如何显示的事情,并且排序本身。
不幸的是,这似乎打破Visual Studio形式的设计师,在这两个VS2005和2008年。
节目编制和运行良好,但是当我试图拥有的形式在设计师,我得到这些错误:
- 找不到类型'MyApp。控制。SortableListView'.请确保在大会包含这种类型的引用。如果这种类型的一个部分的发展项目,确保项目已经成功建造的。
没有堆栈或错误的线信息可用于这一错误
- 变量'listViewImages'是未申报的,或是从来没有分配。
在MyApp。主。设计师。cs线:XYZ柱:1
Call stack:
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.Error(IDesignerSerializationManager manager, String exceptionText, String helpLink)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeExpression(IDesignerSerializationManager manager, String name, CodeExpression expression)
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement)
代码行在的问题是,它实际上是加入的形式,并且是
this.imagesTab.Controls.Add( this.listViewImages );
listViewImages被宣布为
private MyApp.Controls.SortableListView<Image> listViewImages;
和化在 InitializeComponent
方法如下:
this.listViewImages = new MyApp.Controls.SortableListView<Image>();
如前所述,节目编制和运行完全和我试图转变 SortableListView
类推向一个单独的组件,因此它可以编制分开,但是这没有什么区别。
我不知道去哪里离这里。任何帮助,将不胜感激!
解决方案 3
当你加入的列表视图,你有没有将它添加到"工具箱"后添加它的形式?
没有我只是编辑 Main.Designer.cs
并改变了它 System.Windows.Forms.ListView
要 MyApp.Controls.SortableListView<Image>
怀疑这可能是由于泛型的引导我找到一个解决方案。
对于每一类,我需要做一个SortableListView为,我定义的'根类'喜欢这个
class ImagesListView : SortableListView<Image> { }
然后做成的 Main.Designer.cs
文件提到这些根类,而不是的 SortableListView
.
它现在的作品,万岁!
值得庆幸的是,我能够做到这一点,因为我所有类型是已知的最前面,我只能使用 SortableListView
作为一种减少重复代码。
其他提示
它发生在我身上,因为x86/64架构。
由于Visual Studio(开发工具本身)没有64个版本,它是不可能负载64控制进入GUI设计师。
最好的办法对这种可能调谐GUI下x86,并汇编这64必要的时候。
我已经有一个类似的问题(虽然不同)过去在我的控制是在一个不同的名称空间是我的形式,即使寿它是在相同的项目。来修复它我不得不添加一个
using My.Other.Namespace;
到顶部的设计产生的代码文件。恼人的事情是,它继续得到吹走的时候设计师再生页。
我有这个问题也一样,有关合并的大规模SVN的变化(与冲突)在*.设计师。cs文件。该方案是开放的设计图,以图形方式、编辑控制(移到左右),并重新保存的设计。*。设计师。cs文件奇迹般地改变,并警告就离开在下一个汇编。
到是清楚的,你需要修复的所有代码合并问题的第一次。这只是一个工作周围的部队VS以重载它们。
大会包含MyApp。控制。SortableListView不是安装在GAC通过任何机会,是吗?
当你加入的列表视图,你有没有将它添加到"工具箱"后添加它的形式?
也许你忘了添加:
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Release all resources used.
/// </summary>
/// <param name="disposing">true if managed resources should be removed otherwise; false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
// ...
this.components = new System.ComponentModel.Container(); // Not necessarily, if You do not use
// ...
}
我有一些类似的用户控制是指一个远程服务(这是我不能保证正在提供在设计的时间)。
这个职位上MSDN 建议我加入
if (this.DesignMode) return;
来装载功能的控制,或者在我的情况下要点之前,周转基金的客户是初始化。没有诀窍。
所以
private readonly Client _client = new Client();
变得
private Client _client;
public new void Load()
{
if(DesignMode) return;
_client = new Client();
}
我有同样的问题。在我的情况这一问题是由于资源的初始化。我移动了下列代码 InitializeComponent
方法的构造函数(后叫 InitializeComponent
).之后,这个问题得到解决:
this->resources = (gcnew System::ComponentModel::ComponentResourceManager(XXX::typeid));
我有同样的问题。之后去除一些我自己控制的*.设计师。cs-文件的问题得到解决。之后回到原来的码的问题仍然得到解决。因此,这似乎是一个问题与视Sudio缓存。在那一刻我无法再现这样的问题。
如果你有问题的尝试emtpy的文件夹
C:\Users\YOURNAME\AppData\Local\Microsoft\VisualStudio\VERSION\Designer\ShadowCache
没有工作?
在我的情况的问题的文件夹的名字我的项目的!为什么我觉得这样的:我用SVN和'干\SGIMovel'完美的作品。但是,在一个分文件夹,名为'OS#125\SGIMovel'我不能打开该设计一种形式,使用定制的控制和工作在干文件夹。
只需放开#和工作的不错。
谢谢你什么都没有。