2010-03-16 4 views
0

DesignOnly 속성을 살펴 봤지만 원하는 것을 달성하지 못했습니다 *.디자인 타임에만 사용자 정의 컨트롤의 속성을 수정할 수있는 방법이 있습니까?

기본적으로 사용자 정의 컨트롤의 일부 속성 (예 : Text)을 디자인 타임 중에 수정할 수있는 방법을 찾고 있습니다. 예를 들어 VS의 Windows Forms 디자이너 (또는 아마도 모든 GUI Windows Forms GUI를 수정하는 데 사용할 수있는 디자이너) - 그러나 은 실행 시간 동안이 아닙니다. 응용 프로그램이 실행되면 속성은 실질적으로 readonly이어야합니다.

이것이 가능합니까?

* 속성에 DesignOnly 특성을 추가하면 해당 속성에 대해 디자인 모드에서 선택한 값이 고정되어 있지 않은 것 같습니다. 이 속성은 코드에서 기본적으로 설정 한 것으로 끝납니다.

답변

1

main() 메소드에서 true로 설정할 수있는 public static varible을 앱에 넣을 수 있습니다. 그런 다음 변수가 설정되어 있는지 테스트 할 수 있습니다. 그렇다면 프로그램이 정상적으로 시작되었습니다. 그렇지 않으면 디자이너에서 분명히 실행됩니다.

+0

정말이게 가장 합리적이라고 생각합니다. –

+1

@Dan : 컨트롤의 DesignMode 속성을 사용하는 것이 좋습니다. –

0

그 디자인 타임 지원 을주의하는 것이 중요 할 수는 런타임 지원이다. 개체가 백그라운드에서 IDE에 의해 회전됩니다. Designer 지원은 Visual Studio (또는 다른 일부 디자이너)가 개체의 그래픽 표현을 작성할 수있게 해주는 IDE 메타 데이터의 모음입니다.

런타임과 디자인 타임간에 "실제"차이가 없습니다. 내가 말하는 것을보고 싶다면 NotImplementedException을 자신의 속성 중 하나에 던지고 디자이너에서 설정하려고 시도하십시오.

0

VS 폼 디자이너는 런타임에 다른 코드와 마찬가지로 실행되는 코드를 생성합니다. 그래서 당신은 VS 폼 코드와 사용자 코드를 구별 할 수 없습니다. InitializeComponent 메서드를 살펴보십시오. 양식을 만들 때 다른 코드와 마찬가지로 실행됩니다.

관련 문제