Siatka wyświetlania właściwości
W oknie Właściwości są wyświetlane pola w siatce. Lewa kolumna zawiera nazwy właściwości; prawa kolumna zawiera wartości właściwości.
Praca z siatką
Lista dwukolumna zawiera właściwości niezależne od konfiguracji, które można zmienić w czasie projektowania i ich bieżące ustawienia. Należy pamiętać, że wszystkie właściwości mogą nie być wyświetlane. Właściwość można ustawić jako ukrytą HideProperty , na przykład przez zaimplementowanie metody . W szczególności aby ukryć właściwości, które mają właściwości podrzędne:
Ustaw parametr w DisplayChildProperties parametrze
pfDisplay
naFALSE
wartość .Ustaw parametr w HideProperty parametrze
pfHide
naTRUE
wartość .
Aby wypchnąć informacje do okna Właściwości , środowisko IDE używa polecenia ISelectionContainer. ISelectionContainer program jest wywoływany przez pakiety VSPackage dla każdego okna zawierającego obiekty do wyboru z powiązanymi właściwościami, które mają być wyświetlane w oknie Właściwości . Eksplorator rozwiązań implementacji wywołań ISelectionContainer GetProperty
przy użyciu __VSHPROPID. VSHPROPID_BrowseObject w hierarchii projektu, aby uzyskać obiekty z możliwością przeglądania w hierarchii.
Jeśli pakiet VSPackage nie obsługuje __VSHPROPID. VSHPROPID_BrowseObject środowisko IDE próbuje użyć GetProperty wartości __VSHPROPID . VSHPROPID_SelContainer, że element hierarchii lub elementy są dostarczane.
Pakiet VSPackage projektu nie musi być tworzonyISelectionContainer, ponieważ dostarczany przez środowisko IDE pakiet okien implementujący go (na przykład Eksplorator rozwiązań) tworzy ISelectionContainer w jego imieniu.
ISelectionContainer składa się z trzech metod wywoływanych przez środowisko IDE:
CountObjects zawiera liczbę obiektów wybranych do wyświetlenia w oknie Właściwości .
GetObjects
IDispatch
Zwraca obiekty, które mają być wyświetlane w oknie Właściwości.SelectObjects umożliwia wybranie przez użytkownika dowolnego obiektu zwróconego GetObjects przez użytkownika. Dzięki temu pakiet VSPackage może wizualnie zaktualizować wybór wyświetlany użytkownikowi w interfejsie użytkownika.
Okno Właściwości wyodrębnia informacje z obiektów w IDispatch
celu pobrania przeglądanych właściwości. Przeglądarka Właściwości używa IDispatch
polecenia , aby zapytać obiekt, jakie właściwości obsługuje, wykonując ITypeInfo
zapytanie , które jest uzyskiwane z IDispatch::GetTypeInfo
obiektu . Następnie przeglądarka używa tych wartości, aby wypełnić okno Właściwości i zmienić wartości poszczególnych właściwości wyświetlanych w siatce. Informacje o właściwościach są przechowywane w samym obiekcie.
Ponieważ zwrócone obiekty obsługują IDispatch
funkcję , obiekt wywołujący może uzyskać informacje, takie jak nazwa obiektu, wywołując IDispatch::Invoke
metodę lub ITypeInfo::Invoke
przy użyciu wstępnie zdefiniowanego identyfikatora dyspozytora (DISPID), który reprezentuje żądane informacje. Zadeklarowane identyfikatory DISPID są negatywne, aby upewnić się, że nie powodują konfliktu z identyfikatorami zdefiniowanymi przez użytkownika.
W oknie Właściwości są wyświetlane różne typy pól w zależności od atrybutów określonych właściwości wybranego obiektu. Te pola obejmują pola edycji, listy rozwijane i linki do okien dialogowych edytora niestandardowego.
Wartości zawarte na wyliczonej liście są pobierane przez GetObjects zapytanie do
IDispatch
. Wartości uzyskane z wyliczonej listy można zmienić w siatce właściwości, klikając dwukrotnie nazwę pola lub klikając wartość i wybierając nową wartość z listy rozwijanej. W przypadku właściwości, które mają wstępnie zdefiniowane ustawienia z wyliczonych list, kliknij dwukrotnie nazwę właściwości na liście Właściwości, przechodząc przez dostępne opcje. W przypadku wstępnie zdefiniowanych właściwości z tylko dwiema opcjami, takimi jak true/false, kliknij dwukrotnie nazwę właściwości, aby przełączyć się między opcjami.Jeśli HasDefaultValue ma
false
wartość , wskazując, że wartość została zmieniona, wartość jest wyświetlana w tekście pogrubiony. CanResetPropertyValue służy do określania, czy wartość może zostać zresetowana do oryginalnej wartości. Jeśli tak, możesz zmienić wartość domyślną, klikając prawym przyciskiem myszy wartość i wybierając polecenie Resetuj z wyświetlonego menu. W przeciwnym razie musisz zmienić wartość z powrotem na domyślną ręcznie. IVsPerPropertyBrowsing Umożliwia również lokalizowanie i ukrywanie nazw właściwości wyświetlanych w czasie projektowania, ale nie ma wpływu na nazwy właściwości wyświetlane w czasie wykonywania.Kliknięcie przycisku wielokropka (...) powoduje wyświetlenie listy wartości właściwości, z których użytkownik może wybrać (np. selektor kolorów lub listę czcionek). IProvidePropertyBuilder udostępnia te wartości.