Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program Project Projektant zapewnia scentralizowaną lokalizację do zarządzania właściwościami, ustawieniami i zasobami projektu w programie Visual Studio. Jest ono wyświetlane jako pojedyncze okno w zintegrowanym środowisku projektowym programu Visual Studio (IDE) i zawiera wiele okienek po prawej stronie, do których uzyskuje się dostęp za pośrednictwem kart po lewej stronie. Okienka (często nazywane stronami właściwości) w programie Project Projektant różnią się w zależności od typu i języka projektu. Dostęp do Projektant projektu można uzyskać za pomocą polecenia Właściwości w menu Project.
Podtyp projektu często musi wyświetlać dodatkowe strony właściwości w programie Project Projektant. Podobnie niektóre podtypy projektu mogą wymagać usunięcia wbudowanych stron właściwości. Aby to zrobić, podtyp projektu musi zaimplementować IVsHierarchy interfejs i zastąpić metodę GetProperty . Przesłaniając tę metodę i używając propId parametru zawierającego jedną z wartości __VSHPROPID2 wyliczenia, można filtrować, dodawać lub usuwać właściwości projektu. Na przykład może być konieczne dodanie strony do stron właściwości zależnych od konfiguracji. W tym celu należy filtrować strony właściwości zależnych od konfiguracji, a następnie dodać nową stronę do istniejącej listy.
Dodawanie i usuwanie stron właściwości w programie Project Projektant
Usuwanie strony właściwości
Zastąpij metodę filtrowania
GetProperty(uint itemId, int propId, out object property)stron właściwości i uzyskiwaniaclsidslisty.protected override int GetProperty(uint itemId, int propId, out object property) { //Use propId to filter configuration-independent property pages. switch (propId) { . . . . case (int)__VSHPROPID2.VSHPROPID_PropertyPagesCLSIDList: { //Get a semicolon-delimited list of clsids of the configuration-independent property pages ErrorHandler.ThrowOnFailure(base.GetProperty(itemId, propId, out property)); string propertyPagesList = ((string)property).ToUpper(CultureInfo.InvariantCulture); //Remove the property page here . . . . } . . . . } . . . . return base.GetProperty(itemId, propId, out property); }Usuń stronę Zdarzenia kompilacji z listy uzyskanej
clsids.string buildEventsPageGuid = "{1E78F8DB-6C07-4D61-A18F-7514010ABD56}"; int index = propertyPagesList.IndexOf(buildEventsPageGuid); if (index != -1) { // GUIDs are separated by ';' so if you remove the last GUID, also remove the last ';' int index2 = index + buildEventsPageGuid.Length + 1; if (index2 >= propertyPagesList.Length) propertyPagesList = propertyPagesList.Substring(0, index).TrimEnd(';'); else propertyPagesList = propertyPagesList.Substring(0, index) + propertyPagesList.Substring(index2); } //New property value property = propertyPagesList;
Dodawanie strony właściwości
Utwórz stronę właściwości, którą chcesz dodać.
class DeployPropertyPage : Form, Microsoft.VisualStudio.OLE.Interop.IPropertyPage { . . . . //Summary: Return a structure describing your property page. public void GetPageInfo(Microsoft.VisualStudio.OLE.Interop.PROPPAGEINFO[] pPageInfo) { PROPPAGEINFO info = new PROPPAGEINFO(); info.cb = (uint)Marshal.SizeOf(typeof(PROPPAGEINFO)); info.dwHelpContext = 0; info.pszDocString = null; info.pszHelpFile = null; info.pszTitle = "Deployment"; //Assign tab name info.SIZE.cx = this.Size.Width; info.SIZE.cy = this.Size.Height; if (pPageInfo != null && pPageInfo.Length > 0) pPageInfo[0] = info; } }Zarejestruj nową stronę właściwości.
Zastąpij metodę filtrowania
GetProperty(uint itemId, int propId, out object property)stron właściwości, uzyskajclsidslistę i dodaj nową stronę właściwości.protected override int GetProperty(uint itemId, int propId, out object property) { //Use propId to filter configuration-dependent property pages. switch (propId) { . . . . case (int)__VSHPROPID2.VSHPROPID_CfgPropertyPagesCLSIDList: { //Get a semicolon-delimited list of clsids of the configuration-dependent property pages. ErrorHandler.ThrowOnFailure(base.GetProperty(itemId, propId, out property)); //Add the Deployment property page. property += ';' + typeof(DeployPropertyPage).GUID.ToString("B"); } } . . . . return base.GetProperty(itemId, propId, out property); }