2009-08-25 6 views
0

VB.NET으로 VB6 응용 프로그램을 변환했습니다. 결국 C#으로 변환하려고합니다. 하지만 BaseControlArray 상속 된 ShapeArray 관련 문제가 있습니다. 다음은 내 문제입니다.ShapeArray 문제 및 C#

VB .Net 솔루션에 RectangleShapeArray 클래스를 만듭니다. 그런 다음 C#으로 변환했습니다.

그러나 RectangleShapeArray.Load (1)를 호출 할 때 사각형 모양 배열에 복제 할 기존 Shape이없고 디자인 타임에 Shape를 추가해야한다고 나와 있습니다.

그러나 디자인 타임에 RectangleShapeArray에 컨트롤을 추가하는 방법을 찾을 수 없습니다. 디자인 타임에 RectangleShapeArray에 컨트롤을 추가 할 수 있습니까?

어떤 도움

은 크게 사전에 감사 감사 것입니다 ... :)

+0

VB6에서이 클래스들을 기억하지 못합니다. 사용자 지정 클래스입니까? 그렇다면 관련 코드를 표시 할 수 있습니까? – RBarryYoung

+0

명확하게 설명합니다. VB6에서 Shape 컨트롤의 컨트롤 배열을 볼 때 Vb.NET 업그레이드 마법사에서 ShapeArray를 만듭니다. 그리고 직접 RectangleShapeArray 클래스를 만들었습니까? VB.NET 또는 C#에서 RectangleShapeArray의 작동 인스턴스가 있습니까? – MarkJ

+0

또한 Vb6에서 VB.Net으로 마이그레이션을 완료 한 다음 C#으로 마이그레이션을 완료 했으므로 이제 프로그램을 확장하고 있습니까? 아니면 여전히 VB.net에서 C#으로 마이그레이션하고 그 단계에 문제가 있습니까? – MarkJ

답변

2

하지만 디자인 타임에 RectangleShapeArray에 컨트롤을 추가 할 수있는 방법을 찾을 수 없습니다. 디자인 타임에 RectangleShapeArray에 컨트롤을 추가하는 방법이 있습니까?

아니요. 제어 배열은 .NET Windows Forms 디자이너에서 지원하지 않습니다. 이전 VB6 프로그래머가 처음으로 인식하게 된 제어 패턴은 거대한 것입니다.

그러나 실제로 생각하면 디자이너의 컨트롤 배열은 어쨌든별로 의미가 없습니다. 거의 항상 동적 인이며 런타임 제약 조건에 따라 다른 수의 컨트롤을 사용합니다. 컴파일 타임에 이들을 디자인하면 많은 의미가 없습니다.

.NET에서 제어 배열 클래스를 완전히 피하십시오. 더 이상 필요하지 않습니다. 가변 개수의 컨트롤을 사용하는 경우 대신 컨트롤의 일반 목록/배열을 사용하십시오 (VB6에서는 VB6 구현 이벤트 때문에이 기능을 지원하지 않습니다). 폼 디자이너에서는 정적 컨트롤 만 만들고 컨트롤 배열은 만들지 않습니다.