2012-09-18 4 views
4

Visual Studio 2010 (제목 중 하나)에 경고 메시지가 나타납니다.'Track_Attack.TAGeneric'유형의 생성자를 찾을 수 없습니다. C# Winforms

기본적으로 가상 함수의 변수가있는 일반 폼을 만들었습니다.

내가 파라미터로 이루어진 클래스를 취하고 I 다음이 형태에서 상속 다른 형태를 만든

(그때 게터와 세터를 사용하여 인적 또는로두고있는) 로컬 변수에 대입. 모든 것이 잘 실행되지만, 디자이너를 볼 때 그 오류 메시지가 나타납니다.

public TAGeneric(TAManager iManager) 
    { 
     ControlHelper.SuspendDrawing(this); 

     mManager = iManager; 

     SetStyle(ControlStyles.OptimizedDoubleBuffer | 
      ControlStyles.UserPaint | 
      ControlStyles.AllPaintingInWmPaint, true); 

     InitializeComponent(); 
     SetupCommandBar(); 
     ControlHelper.ResumeDrawing(this); 
    } 

그 부모.

public TAAddInterval(TAManager iManager) : base(iManager) 
    { 
     InitializeComponent(); 
    } 

이것은 어린이입니다. 내가 frowned되었을 때 나는 "매니저"를 사용하고 있다는 사실을 잊어라. 누군가 문제를 밝혀 냈습니까? 문자 그대로 잘 동작하지만 디자이너에서 그래픽 측면을 편집하려고 할 때로드되지 않습니다.

도움 주셔서 감사합니다.

public TAAddInterval(TAManager iManager) : base(iManager) 
{ 
    InitializeComponent(); 
} 

[Obsolete("This constructor only exists for the benefit of the designer...")] 
public TAAddInterval() : this(null) 
{ 
} 

당신이 디자이너가 발생하는 경우 NullReferenceException을 피할 수 대신 제공 할 수 가짜 TAManager의 일종이 발생되는 경우 :

+0

귀하의 질문과 관련이 없으므로 [Generic] (http://msdn.microsoft.com/en-us/library/ms172192.aspx) 실제로 의미하는 클래스 이름을 "Generic"로 변경하는 것이 좋습니다. .Net의 어떤 것. –

+0

MS 지원 찾기 : https://support.microsoft.com/en-us/kb/893709 –

답변

8

나는 디자이너가 사용할 수 있도록 당신이 매개 변수가없는 생성자를 제공 할 필요가 의심 관리자를 사용하는 일부 코드를 누르십시오.

+0

바로 내 입에서 단어를 가져 왔습니다! +1 Jon Skeet 답변! –

+0

그래서 두 번째 생성자를 원본과 함께 자식 폼에 추가합니다. – ICTech

+0

@ICTech : 답변에 표시된 것과 정확히 같습니다. –

2

아마도 매개 변수없는 생성자가 필요하고 디자이너는 정상적으로 작동합니다.

+0

부모님 있음 또는 자식 또는 둘 다? – ICTech

+1

디자이너가 작동하려면 모든 폼에 매개 변수없는 생성자가 있어야합니다. 해당 생성자가 기반을 상속 받았다고해도 @JonSkeet 예를 들어 한 레벨 아래에서 매개 변수없는 생성자를 구현할 수 있습니다. 생성자는 기본 (생성자 또는 생성자)에서 상속됩니다. –

관련 문제