다음을 통해 공유


속성 표시 그리드

속성 창에는 그리드 내 필드가 표시됩니다. 왼쪽 열에는 속성 이름이 포함되며 오른쪽 열에는 속성 값이 포함됩니다.

그리드 사용

두 열 목록에는 디자인 타임에 변경할 수 있는 구성 독립적 속성과 현재 설정이 표시됩니다. 모든 속성이 표시되지 않을 수 있습니다. 예를 들어 HideProperty 메서드를 구현하여 속성을 숨김으로 설정할 수 있습니다. 특히 자식 속성이 있는 속성을 숨기려면 다음을 수행합니다.

  1. DisplayChildPropertiespfDisplay 매개 변수를 FALSE로 설정합니다.

  2. HidePropertypfHide 매개 변수를 TRUE로 설정합니다.

속성 창에 정보를 푸시하도록 IDE에서 ISelectionContainer를 사용합니다. ISelectionContainer속성 창에 표시할 관련 속성이 있는 선택 가능한 개체가 포함된 각 창의 VSPackage에서 호출됩니다. 솔루션 탐색기ISelectionContainer 호출 구현은 프로젝트 계층 구조 내 __VSHPROPID.VSHPROPID_BrowseObject를 사용하여 GetProperty를 호출해 계층 구조에서 검색할 수 있는 개체를 획득합니다.

VSPackage에서 __VSHPROPID.VSHPROPID_BrowseObject를 지원하지 않으면 IDE는 계층 구조 항목을 제공하는 __VSHPROPID.VSHPROPID_SelContainer의 값을 사용하여 GetProperty를 사용하려고 합니다.

구현하는 IDE 제공 창 패키지(예: 솔루션 탐색기)가 대신 ISelectionContainer를 만들므로 프로젝트 VSPackage에서 ISelectionContainer를 만들 필요가 없습니다.

ISelectionContainer는 IDE에서 호출되는 세 가지 메서드로 구성됩니다.

  • CountObjects에는 속성 창에 표시할 개체 수가 포함됩니다.

  • GetObjects속성 창에 표시할 IDispatch 개체를 반환합니다.

  • SelectObjects를 사용하면 사용자가 GetObjects에서 반환된 개체를 선택할 수 있습니다. 이를 통해 VSPackage는 UI에서 사용자에게 표시되는 선택 항목을 시각적으로 업데이트할 수 있습니다.

속성 창은 검색할 속성을 검색하기 위해 IDispatch 개체에서 정보를 추출합니다. 속성 브라우저는 IDispatch를 사용하여 IDispatch::GetTypeInfo에서 가져온 ITypeInfo 쿼리에서 어떤 속성을 지원하는지 개체에게 묻습니다. 그런 다음, 브라우저는 이러한 값을 사용하여 속성 창을 채우고 그리드에 표시되는 개별 속성 값을 변경합니다. 속성 정보는 개체 자체 내에서 유지됩니다.

반환된 개체에서 IDispatch를 지원하므로 호출자는 원하는 정보를 나타내는 DISPID(미리 정의된 디스패치 식별자)가 있는 IDispatch::Invoke 또는 ITypeInfo::Invoke를 호출하여 개체 이름과 같은 정보를 가져올 수 있습니다. 선언된 DISPID는 사용자 정의 식별자와 충돌하지 않음을 보장하는 음수입니다.

속성 창에는 선택한 개체의 특정 속성 특성에 따라 다양한 형식의 필드가 표시됩니다. 이러한 필드에는 편집 상자, 드롭다운 목록 및 사용자 지정 편집기 대화 상자에 대한 링크가 포함됩니다.

  • GetObjects에서 IDispatch로 쿼리하면 열거형 목록에 포함된 값이 검색됩니다. 필드 이름을 두 번 클릭하거나 값을 클릭하고 드롭다운 목록에서 새 값을 선택하여 속성 그리드에서 열거형 목록에서 가져온 값을 변경할 수 있습니다. 열거형 목록에서 미리 정의된 설정이 있는 속성의 경우 속성 목록에서 속성 이름을 두 번 클릭하면 사용 가능한 선택 항목이 순환됩니다. true/false와 같은 두 가지 선택 항목만 있는 미리 정의된 속성의 경우 선택 항목을 전환하려면 속성 이름을 두 번 클릭합니다.

  • HasDefaultValuefalse인 경우 이는 값이 변경되었음을 나타내며 값은 굵은 텍스트로 표시됩니다. CanResetPropertyValue는 값을 원래 값으로 다시 설정할 수 있는지 확인하는 데 사용됩니다. 이 경우 값을 마우스 오른쪽 단추로 클릭하고 표시된 메뉴에서 다시 설정을 선택하여 기본값으로 다시 변경할 수 있습니다. 그렇지 않으면 수동으로 값을 다시 기본값으로 변경해야 합니다. 또한 IVsPerPropertyBrowsing을 사용하면 디자인 타임 중에 표시되는 속성 이름을 지역화하고 숨길 수 있지만 런타임 중에 표시되는 속성 이름에는 영향을 주지 않습니다.

  • 줄임표(...) 단추를 클릭하면 사용자가 선택할 수 있는 속성 값(예: 색 선택기 또는 글꼴 목록) 목록이 표시됩니다. IProvidePropertyBuilder에서 이러한 값을 제공합니다.

참고 항목