"찾을 수 없습니다형"오류 로드하는 양식에서 윈도우 디자이너의 양식
-
08-06-2019 - |
문제
나는가.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'나는 디자이너를 열 수 없습 양식을 사용하는 사용자 정의 제어 및 작동 트렁크에서 폴더에 있습니다.
다만 떨어져 얻#작동합니다.
아무것도 주셔서 감사합니다.