Поделиться через


Создание страницы параметров с помощью классов MPF

в Visual Studio управляемые классы, производные от границы пакетов DialogPage расширение Visual Studio Интегрированная среда разработки путем добавления Параметры страницы под Сервис меню.

Объект, реализующий заданным Параметр "сервис " страница связана с конкретным VSPackages ProvideOptionPageAttribute объект.

Поскольку создает объект, реализующий конкретная область среды "Сервис параметры " эта страница отображается страница, если определенная средой разработки:

  • A Параметр "сервис " страница должна быть реализована в собственном объекте, а не на объекте, реализующий VSPackage.

  • Объект не может реализовывать несколько "Сервис параметры " веб-страницы.

Регистрация как поставщик страницы " сервис Параметры "

Конфигурация пользователя VSPackage, поддерживающий до конца "Сервис параметры " на страницах показаны объекты, предоставляющий данные "Сервис параметры " страницы путем применения экземпляров ProvideOptionPageAttribute при применении к Package реализация.

Должен быть только один экземпляр ProvideOptionPageAttribute для каждого DialogPage- производный тип, реализующий a "Сервис параметры " страница.

Каждый экземпляр ProvideOptionPageAttribute использует тип, реализующий "Сервис параметры " страница строки, которые содержат категорию и sub-категорию, используемые для определения a "Сервис параметры " страница и сведения о ресурсах для регистрации типов, предоставляя a "Сервис параметры " страница. Дополнительные сведения см. в разделе С помощью страницы параметров.

Сохранение состояния страницы " сервис Параметры "

Если набор узлов a "Сервис параметры " реализация страницы зарегистрирована если включена поддержка автоматизации, интегрированная среда разработки сохраняет состояние страницы вместе с остальными "Сервис параметры " веб-страницы. Дополнительные сведения см. в разделе С помощью страницы параметров.

VSPackage может управлять с помощью собственной сохраняемость ProvideProfileAttribute. Только одной или другой метод сохраняемости должен использоваться.

Реализация класса DialogPage

Объект указав реализацию VSPackage a DialogPage- производный тип может воспользоваться преимуществами следующих унаследованных функций:

  • Окно интерфейса пользователя по умолчанию.

  • Доступный механизм сохраняемости по умолчанию значение ProvideProfileAttribute применяет к классу или SupportsProfiles свойство имеет значение true для ProvideOptionPageAttribute это применяется к классу.

  • Поддержка автоматизации.

Минимальные требования для объекта, реализующего a "Сервис параметры " страница использование DialogPage добавление открытых свойств.

Если класс как правильно зарегистрирован a "Сервис параметры " поставщик страницы, затем его открытых свойств доступен на Параметры раздел Сервис меню в формате сетки свойств.

Все эти функции по умолчанию можно переопределить. Например, создать более сложная пользовательского интерфейса требуются только переопределить реализацию по умолчанию Window.

Пример

Что следует простая реализация "hello world" страницы параметров. Добавление следующий код к по умолчанию проект, созданный с шаблоном пакета Visual Studio Команда меню выбранный параметр адекватно продемонстрирует функциональность страницы параметров.

Описание

Следующий класс определяет минимальную "hello world " Параметры". Раскрывано, пользователь может задать открытый HelloWorld свойство в таблице свойств.

Код

Imports System
Imports Microsoft.VisualStudio.Shell

Namespace Company.UIUserSettingsToolsOptionsPages
    Class HelloWorldOptions
        Inherits DialogPage
        Private m_helloWorld As Boolean = True 
        Public Property HelloWorld() As Boolean 
            Get 
                Return m_helloWorld
            End Get 
            Set(ByVal value As Boolean)
                m_helloWorld = value
            End Set 
        End Property 
    End Class 
End Namespace
using System;
using Microsoft.VisualStudio.Shell;

namespace Company.UIUserSettingsToolsOptionsPages
{
    class HelloWorldOptions : DialogPage
    {
        bool helloWorld = true;
        public bool HelloWorld
        {
            get { return helloWorld; }
            set { helloWorld = value; }
        }
    }
}

Описание

Применить следующий атрибут в класс пакета делает страницы Параметры, доступные при загрузке пакета. Номера произвольные идентификаторы ресурса для категории и страницы и логическое значение в конце указывающее, поддерживает ли страница автоматизации.

Код

<PackageRegistration(UseManagedResourcesOnly:=True)> _
<DefaultRegistryRoot("Software\Microsoft\VisualStudio\9.0")> _
<InstalledProductRegistration(False, "#110", "#112", "1.0", IconResourceID:=400)> _
<ProvideLoadKey("Standard", "1.0", "Package Name", "Company", 1)> _
<ProvideMenuResource(1000, 1)> _
<Guid(GuidList.guidPkgString)> _
<ProvideOptionPage(GetType(HelloWorldOptions), "Hello World Category", "Hello World Page", 1000, 1001, False)> _
Public NotInheritable Class UIUserSettingsToolsOptionsPagesPackage
    Inherits Package
[ProvideOptionPage(typeof(HelloWorldOptions), 
    "Hello World Category", "Hello World Page", 
    1000, 1001, false)]

Описание

Следующий обработчик событий выводит результаты в зависимости от значения свойства на странице параметров. Она использует GetDialogPage метод с результатом явно приводит в пользовательский тип страницы параметров для получения доступа к свойствам, предоставляемые страницей.

В случае проекта, создаваемого шаблоном, эта функция вызывается из пакета MenuItemCallback функция, чтобы вложить в команде по умолчанию, добавленный к Сервис меню.

Код

Private Sub ShowHelloWorld(ByVal sender As Object, ByVal e As EventArgs)
    Dim hw = TryCast(GetDialogPage(GetType(HelloWorldOptions)), HelloWorldOptions)
    If hw.HelloWorld = True Then
        MessageBox.Show("Hello World!")
    Else
        MessageBox.Show("Goodbye.")
    End If 
End Sub
private void ShowHelloWorld(object sender, EventArgs e)
{
    var hw = GetDialogPage(typeof(HelloWorldOptions)) 
        as HelloWorldOptions;
    if (hw.HelloWorld == true)
    {
        MessageBox.Show("Hello World!");
    }
    else MessageBox.Show("Goodbye.");
}

См. также

Основные понятия

Поддержка автоматизации для страницы параметров

Регистрация пользовательские Параметры страницы

С помощью страницы параметров

Создание страницы параметров с помощью автоматизации

Создание страницы параметров с помощью сборок взаимодействия

Другие ресурсы

параметры пользователей и параметры

Параметры страницы