문제

크기 구조물을 반환하는 "mysize"속성이있는 Windows.forms 구성 요소가 있습니다. MySize가 설명이 설정되어 있지 않은 한, 구성 요소의 크기를 기준으로 반환 된 mysize를 자동으로 계산하는 것이 나의 의도는 MySize의 설정 값을 반환하는 것이 었습니다. 불행히도, 이제 구성 요소를 양식에 포함 시키 었으므로 Windows Forms Designer는 MySize 속성에 대한 값을 명시 적으로 생성하고 설정하기로 결정했습니다.

따라서 디자이너가 떠나서 나를 내버려 두도록 기본값을 설정해야합니다.

System.componentModel.defaultValue를 다루는 답변을 읽었으므로 생성자의 속성 값을 수동으로 설정해야한다는 것을 알고 있지만, False의 기본값을 설정하는 것만 다루었습니다. 끊임없는.

크기 구조물은 일정하지 않으므로 VB 컴파일러가 끔찍한 일이되어 크기가 상수가 아니기 때문에 크기의 속성의 기본값으로 크기를 설정할 수 없다고 말합니다.

이것은 내 뇌를 아프게합니다.

속성을 사용하는 대신 getMysize 및 setMysize 메소드를 만들어 문제를 해결할 수 있지만 크기에 대한 기본 속성을 실제로 설정할 수있는 방법이 있는지 알고 싶습니다.

NB : MySize를 크기 속성 (기본값 150x150 인 기본값을 갖는 데있어서 기본값을 설정할 수있는 것 같습니다)으로 MySize를 사용하지 않습니다. MySize는 클래스가 요구하는 크기 값입니다.

도움이 되었습니까?

해결책

DefaultValue 속성을 적용하는 대신 다음 두 가지 방법을 작성하십시오.

bool ShouldSerializemySize() { ... }
void ResetmySize() { ... }

isserializemysize에서 값을 코드로 직렬화 해야하는 경우 true를 반환하십시오. 재설정에서 속성을 기본값으로 재설정하십시오.

구성 요소 디자이너는 반사를 통해 이러한 방법을 자동으로 선택합니다.

추가 정보는 여기에 있습니다 :http://msdn.microsoft.com/en-us/library/53b8022e(vs.71).aspx

다른 팁

커뮤니티 컨텐츠 섹션에서 유형 크기의 기본값을 설정하기위한 특정 예제가 실제로 있음을 알았습니다. DefaultValue의 MSDN 페이지, 이는 기본값 생성자를 사용하는 것을 제안합니다 이 페이지.

불행히도, 주어진 예제는 정확하지만, 그것이 작동한다는 점에서 MSDN 문서가 자연스럽게이 답변으로 이끌지 않을 것 같습니다.

나는 알바바리의 대답을이 질문에 대한 답으로 설정하고 (그의 대답이 적어도 어떤 의미가 있기 때문에)이 예제를 여기에 남겨두고 완전성을 얻었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top