문제

나는가.NET2.0windows 형태로 많이 사용합니다 ListView 제어합니다.

나는 하위에 ListView 클래스로 템플릿 SortableListView<T> 클래스,수 있습니다 그래서 조금 더 똑똑하는 방법에 대해 이 표시는 것,그리고 자체적으로 정렬.

불행하게도 이것을 깨 Visual Studio 양식,디자이너에서 모두 VS2005 하고 2008.

프로그램 컴파일과 실행은 괜찮지만,때도 넣을 소유하는 형태로 디자이너에서 나는 이러한 오류를 얻을:

  • 을 찾을 수 없습형'프로그램이 setup.컨트롤이 있습니다.SortableListView'.는지 확인하시기 바랍 어셈블리가 포함된 이 유형은 참조됩니다.이 형식은 개발 프로젝트의 일부는지 확인하는 프로젝트를 성공적으로 내장합니다.

이 없다 스택 추적 또는 오류 라인을 사용할 수 있는 정보에 대한 이러

  • 변수'listViewImages'은 하나 또는 선언되지 않은 적이 없었 할당됩니다.

에서 프로그램이 Setup.습니다.디자이너입니다.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

할 때 추가 listview,당신은 그것을 추가하는 도구 상자 및 다음에 추가를 형성하는가?

No,나는 그냥 편집 Main.Designer.cs 고 그것을 변경에 System.Windows.Forms.ListView 하기 MyApp.Controls.SortableListView<Image>

의심되었을 수 있으로 인해 제네릭 led 을 실제로를 찾는 솔루션입니다.

각 클래스를 확인해야 SortableListView 에 대한 정의는'스텁스'이

class ImagesListView : SortableListView<Image> { }

다음 Main.Designer.cs 파일을 참조하여 이러한 스텁스는 대신 SortableListView.

그것은 지금,hooray!

감사하게도 나는 할 수 있기 때문에 이렇게 내 모든 형식은 지금까지 알려진 프런트,그리고 나만을 사용하여 SortableListView 는 방법으로 감소시키기의 중복되는 코드.

다른 팁

그것은 나에게 무슨 일이 있었기 때문에 x86/x64 포함됩니다.

부터는 Visual Studio(개발 도구는 자)가 없 64 버전은,그것을 가능하지 않을 로드 x64 제어 GUI 디자이너입니다.

를 위한 가장 좋은 방법이 될 수 있습 튜닝 GUI 에서 x86,그리고 그것을 컴파일을 위한 64 때 필요합니다.

나는 문제는 다음과 같이(tho 동일하지 않)과거에 제 컨트롤 다른 네임스페이스 내 형태로도 그것이 동일한 프로젝트입니다.그것을 해결하려고 했다 추가

using My.Other.Namespace;

최고의 디자이너를 생성된 코드 파일이 있습니다.성가신 일이었고 그것을 점점 멀리 날아갈 때는 디자이너는 다시 생성되는 페이지.

나는 이 문제는 너무,관련을 병합하는 대규모 SVN 변경(와 충돌에서)*.디자이너입니다.cs 파일에 있습니다.이 솔루션을 열어 디자인 그래픽 보기고,편집하 제어(왼쪽으로 이동한 다음 오른쪽)과 다시 저장 디자인이다.는*.디자이너입니다.cs 파일의 마술 변화,경고 멀리 갔다가 다음에 컴파일할 수도 있습니다.

할 명확하고,필요하신의 모든 문제를 해결하기 위해 코드를 문제를 병합 처음이다.이것은 그냥 주위에 일을 힘을 대시니다.

을 포함하는 어셈블리 프로그램이 setup.컨트롤이 있습니다.SortableListView 설치되어 있지 않은 GAC 에 의해 어떤 기회입니까?

할 때 추가 listview,당신은 그것을 추가하는 도구 상자 및 다음에 추가를 형성하는가?

아마도 당신이 잊을 추가하는:

    /// <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
        // ...
    }

나와 비슷한 사용자 컨트롤 참조하여 원격 serice(가 보장되고 사용할 수 있는 디자인이다).

이 게시물에 MSDN 제안 추가

if (this.DesignMode) return;

부하 기능의 제어,또는 나의 케이스에서 점하기 전에 WCF 클라이언트가 초기화.는 않았습니다.

그래서

private readonly Client _client = new Client();

private Client _client;

public new void Load()
{
    if(DesignMode) return;
    _client = new Client();
}

가 동일한 문제입니다.내 경우 이 문제는 자원으로 인해 초기화.나는 이동한 다음 코드 InitializeComponent 방법 ctor(를 호출한 후에 InitializeComponent).후에는 이 문제는 해결되었:

this->resources = (gcnew System::ComponentModel::ComponentResourceManager(XXX::typeid));

나는 같은 문제를 가지고 있었습니다.제거 후에는 내 자신의 일부의 컨트롤*.디자이너입니다.cs-파일 문제를 해결할 수 있었습니다.후 원래 코드를 문제는 여전히 해결되었습니다.그래서 그것은 문제가 발생한 것 같 Visual Sudio 캐시입니다.순간에 나는 재생할 수 없는 이 문제를 해결합니다.

이 있는 경우 문제 해보를 비어 있는 폴더

C:\Users\YOURNAME\AppData\Local\Microsoft\VisualStudio\VERSION\Designer\ShadowCache

그것은 작동했는가?

나의 케이스에서 문제 폴더의 이름을 내 프로젝트!왜 나는 생각한다:내가 사용하는 SVN 고에서'트렁크\SGIMovel'완벽하게 작동합니다.하지만 지점에서 폴더 이름으로'OS#125\SGIMovel'나는 디자이너를 열 수 없습 양식을 사용하는 사용자 정의 제어 및 작동 트렁크에서 폴더에 있습니다.

다만 떨어져 얻#작동합니다.

아무것도 주셔서 감사합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top