Visual Basic 6.0 사용자를 위한 사용자 정의 컨트롤
업데이트: 2007년 11월
Visual Basic 6.0과 Visual Basic 2008에서 모두 컨트롤을 만들 수 있지만 유의해야 할 몇 가지 차이점이 있습니다.
개념적 차이
Visual Basic 6.0에서는 ActiveX 컨트롤을 만들기 위해 UserControl 프로젝트(ActiveX 컨트롤 프로젝트)를 사용합니다. 컴파일된 UserControl 개체는 Visual Basic 6.0 폼 및 Internet Explorer 등 ActiveX를 지원하는 모든 컨테이너에서 호스팅될 수 있습니다.
Visual Basic 2008에서는 Windows Forms 응용 프로그램에서 호스팅될 수 있는 컨트롤을 만들기 위해 Windows 컨트롤 라이브러리 프로젝트를 사용합니다.
디자인 타임 동작
Visual Basic 6.0에서는 디자인 타임에 UserControl 개체를 폼에 추가하기 전에 UserControl 디자이너를 닫아야 합니다. 이렇게 하면 컨트롤이 자동으로 컴파일(빌드)됩니다. 그 후에 UserControl 개체에 적용되는 변경 사항은 응용 프로그램이 실행되기 전까지는 폼의 UserControl 인스턴스에 반영되지 않습니다. UserControl 디자이너는 열려 있는 경우 자동으로 닫힙니다.
Visual Basic 2008에서는 UserControl 디자이너를 닫지 않고도 UserControl 개체를 폼에 추가할 수 있지만, 그 전에 먼저 사용자 정의 컨트롤을 빌드해야 합니다. 단순히 UserControl 디자이너를 닫기만 한다고 해서 컨트롤이 빌드되지는 않습니다. 그 후에 사용자 정의 컨트롤에 적용되는 변경 사항은 UserControl 개체가 다시 빌드되기 전까지는 폼 디자이너에 반영되지 않습니다. UserControl 개체는 테스트 응용 프로그램을 디버깅할 때마다 자동으로 다시 빌드됩니다.
값 유지
Visual Basic 6.0에서는 ReadProperties 및 WriteProperties 이벤트를 사용하여 UserControl 개체의 값을 검색하거나 해당 값을 PropertyBag 개체에 저장합니다.
Visual Basic 2008에서는 PropertyBag 개체가 더 이상 지원되지 않으며 ReadProperties 및 WriteProperties 이벤트도 더 이상 존재하지 않습니다. 그 대신 serialization을 사용하면 속성을 이진 또는 SOAP 형식으로 저장하고 검색할 수 있습니다. 자세한 내용은 연습: Visual Basic에서 개체 유지를 참조하십시오.
업그레이드 참고 사항
Visual Basic 6.0 UserControl 프로젝트가 Visual Basic 2008로 업그레이드되면 이 프로젝트는 Windows 컨트롤 라이브러리로 업그레이드됩니다. 이렇게 만들어진 컨트롤은 Internet Explorer에서 더 이상 호스팅될 수 없습니다.
참고 항목
작업
개념
Visual Basic 6.0 사용자를 위한 PropertyBag 대응 항목