Udostępnij za pośrednictwem


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:

  1. Ustaw parametr w DisplayChildProperties parametrze pfDisplay na FALSEwartość .

  2. Ustaw parametr w HideProperty parametrze pfHide na TRUEwartość .

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 .

  • GetObjectsIDispatch 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 ITypeInfozapytanie , które jest uzyskiwane z IDispatch::GetTypeInfoobiektu . 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ą IDispatchfunkcję , 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 falsewartość , 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.

Zobacz też