我有一个.网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.ListViewMyApp.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'我不能打开该设计一种形式,使用定制的控制和工作在干文件夹。

只需放开#和工作的不错。

谢谢你什么都没有。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top