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


Пошаговое руководство. Создание шаблона с помощью элементов управления содержимым

В этом пошаговом руководстве показано, как создать настройку на уровне документа, использующую элементы управления содержимым, для создания структурированного и повторно используемого содержимого в шаблоне Microsoft Office Word.

Область применения. Сведения в этом разделе относятся к проектам уровня документа для Word. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.

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

После создания документа на основе шаблона можно добавить любую из таблиц в документ, используя несколько объектов BuildingBlockGalleryContentControl, отображающих доступные стандартные блоки в шаблоне.

В этом пошаговом руководстве рассматриваются следующие задачи:

  • создание таблиц с элементами управления содержимым в шаблоне Word во время разработки;

  • заполнение элемента управления содержимым «Поле со списком» и элемента управления содержимым «Раскрывающийся список»;

  • запрет редактирования указанной таблицы пользователями;

  • добавление таблиц в коллекцию стандартных блоков шаблона;

  • создание элемента управления содержимым, отображающего доступные стандартные блоки в шаблоне.

    Примечание.

    Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.

Необходимые компоненты

Для выполнения этого пошагового руководства требуются следующие компоненты:

Создание проекта шаблона Word

Создайте шаблон Word, чтобы пользователи могли легко создавать собственные копии.

Создание проекта шаблона Word

  1. Создайте проект шаблона Word с именем MyBuildingBlockTemplate. В мастере создайте документ в решении. Дополнительные сведения см. в статье "Практическое руководство. Создание проектов Office в Visual Studio".

    Visual Studio открывает новый шаблон Word в конструкторе и добавляет проект MyBuildingBlockTemplate в Обозреватель решений.

Создание таблицы сотрудников

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

Создание таблицы сотрудников

  1. В шаблоне Word, размещенном в конструкторе Visual Studio, на ленте щелкните вкладку "Вставка ".

  2. В группе "Таблицы" щелкните "Таблица" и вставьте таблицу с двумя столбцами и четырьмя строками.

  3. Введите текст в первый столбец, как показано в следующем столбце:

    Имя сотрудника
    Дата найма
    Заголовок
    Картину
  4. Щелкните первую ячейку во втором столбце (рядом с именем сотрудника).

  5. На ленте перейдите на вкладку Разработчик .

    Примечание.

    Если вкладка Разработчик не отображается, сделайте ее видимой. Дополнительные сведения см. в разделе "Практическое руководство. Отображение вкладки разработчика на ленте".

  6. В группе "Элементы управления" нажмите кнопку PlainTextContentControl "Текст", чтобы добавить ее PlainTextContentControl в первую ячейку.

  7. Щелкните вторую ячейку во втором столбце (рядом с датой найма).

  8. В группе "Элементы управления" нажмите кнопку DatePickerContentControl "Выбор даты", чтобы добавить вторую DatePickerContentControl ячейку.

  9. Щелкните третью ячейку во втором столбце (рядом с заголовком).

  10. В группе "Элементы управления" нажмите кнопкуComboBoxContentControl "Поле со списком", чтобы добавить ее ComboBoxContentControl в третью ячейку.

  11. Щелкните последнюю ячейку во втором столбце (рядом с рисунком).

  12. В группе "Элементы управления" нажмите кнопку PictureContentControl "Элемент управления содержимым рисунка", чтобы добавить PictureContentControl ее в последнюю ячейку.

Создание таблицы отзывов клиентов

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

Создание таблицы отзывов клиентов

  1. В шаблоне Word щелкните строку после добавления таблицы сотрудников, которую вы добавили ранее, и нажмите клавишу ВВОД , чтобы добавить новый абзац.

  2. На ленте щелкните вкладку "Вставка ".

  3. В группе "Таблицы" щелкните "Таблица" и вставьте таблицу с двумя столбцами и тремя строками.

  4. Введите текст в первый столбец, как показано в следующем столбце:

    Имя клиента
    Оценка удовлетворенности
    Комментарии
  5. Щелкните первую ячейку второго столбца (рядом с именем клиента).

  6. На ленте перейдите на вкладку Разработчик .

  7. В группе "Элементы управления" нажмите кнопку PlainTextContentControl "Текст", чтобы добавить ее PlainTextContentControl в первую ячейку.

  8. Щелкните вторую ячейку второго столбца (рядом с рейтингом удовлетворенности).

  9. В группе "Элементы управления" нажмите кнопку DropDownListContentControl раскрывающегося списка, чтобы добавить вторую DropDownListContentControl ячейку.

  10. Щелкните последнюю ячейку второго столбца (рядом с комментариями).

  11. В группе "Элементы управления" нажмите кнопку RichTextContentControl "Форматированный текст", чтобы добавить ее RichTextContentControl в последнюю ячейку.

Заполнение поля со списком и раскрывающегося списка программным способом

Элементы управления содержимым можно инициализировать во время разработки с помощью окна "Свойства " в Visual Studio. Их также можно инициализировать во время выполнения, что позволяет динамически задавать их начальные состояния. В этом пошаговом руководстве используйте код для заполнения записей во ComboBoxContentControl время выполнения, DropDownListContentControl чтобы увидеть, как работают эти объекты.

Изменение пользовательского интерфейса элементов управления содержимым программным способом

  1. В Обозреватель решений щелкните правой кнопкой мыши файл ThisDocument.cs или ThisDocument.vb и выберите команду View Code.

  2. Добавьте в класс ThisDocument приведенный далее код. В этом коде объявляются несколько объектов, которые вы будете использовать позже в этом пошаговом руководстве.

    private Microsoft.Office.Tools.Word.GroupContentControl groupControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl1;
    private Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl buildingBlockControl2;
    
  3. Добавьте в метод ThisDocument_Startup класса ThisDocument следующий код. Этот код добавляет записи в таблицы ComboBoxContentControl и DropDownListContentControl и задает замещающий текст, отображаемый в каждом из этих элементов управления, прежде чем пользователь изменяет их.

    comboBoxContentControl1.PlaceholderText = "Choose a title, or enter your own";
    comboBoxContentControl1.DropDownListEntries.Add("Engineer", "Engineer", 0);
    comboBoxContentControl1.DropDownListEntries.Add("Designer", "Designer", 1);
    comboBoxContentControl1.DropDownListEntries.Add("Manager", "Manager", 2);
    
    dropDownListContentControl1.PlaceholderText =
        "Choose a rating (1 lowest, 3 highest)";
    dropDownListContentControl1.DropDownListEntries.Add("1", "1", 0);
    dropDownListContentControl1.DropDownListEntries.Add("2", "2", 1);
    dropDownListContentControl1.DropDownListEntries.Add("3", "3", 2);
    

Запрет пользователям изменять таблицу сотрудников

Используйте объект GroupContentControl, объявленный ранее, для защиты таблицы сотрудников. После применения защиты пользователи по-прежнему смогут редактировать элементы управления содержимым в таблице. Однако они не смогут изменять текст в первом столбце или изменять таблицу иным способом, например добавляя или удаляя строки и столбцы. Дополнительные сведения о том, как использовать для GroupContentControl защиты части документа, см. в разделе "Элементы управления содержимым".

Запрет редактирования указанной таблицы пользователями

  1. Добавьте следующий код в метод ThisDocument_Startup класса ThisDocument после кода, добавленного на предыдущем шаге. Этот код предотвращает изменение таблицы сотрудников, помещая таблицу внутри объекта GroupContentControl, объявленного ранее.

    this.Tables[1].Range.Select();
    groupControl1 = this.Controls.AddGroupContentControl("groupControl1");
    

Добавление таблиц в коллекцию стандартных блоков

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

Добавление таблиц в стандартные блоки в шаблоне

  1. Добавьте следующий код в метод ThisDocument_Startup класса ThisDocument после кода, добавленного на предыдущем шаге. Этот код добавляет новые стандартные блоки, содержащие таблицы в коллекцию Microsoft.Office.Interop.Word.BuildingBlockEntries, которая содержит все многоразовые стандартные блоки в шаблоне. Новые стандартные блоки определяются в новой категории "Сотрудник" и " Сведения о клиенте" и назначаются типу Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1стандартного блока.

    Word.Template template1 = this.AttachedTemplate as Word.Template;
    
    if (template1 != null)
    {
        object description = null;
        template1.BuildingBlockEntries.Add("Employee Table",
            Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information",
            this.Tables[1].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent);
        template1.BuildingBlockEntries.Add("Customer Table",
            Word.WdBuildingBlockTypes.wdTypeCustom1, "Employee and Customer Information",
            this.Tables[2].Range, ref description, Word.WdDocPartInsertOptions.wdInsertContent);
    }
    
  2. Добавьте следующий код в метод ThisDocument_Startup класса ThisDocument после кода, добавленного на предыдущем шаге. Этот код удаляет таблицы из шаблона. Таблицы более не нужны, поскольку вы добавили их в коллекцию повторно используемых стандартных блоков в шаблоне. Код сначала переводит документ в режим конструктора, чтобы можно было удалить защищенную таблицу сотрудников.

    if (!this.FormsDesign)
    {
        this.ToggleFormsDesign();
    }
    this.Tables[2].Delete();
    this.Tables[1].Delete();
    this.ToggleFormsDesign();
    

Создание элемента управления содержимым, отображающего стандартные блоки

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

Создание элемента управления содержимым, отображающего доступные стандартные блоки

  1. Добавьте следующий код в метод ThisDocument_Startup класса ThisDocument после кода, добавленного на предыдущем шаге. Этот код инициализирует объект BuildingBlockGalleryContentControl, объявленный ранее. На экране BuildingBlockGalleryContentControl отображаются все стандартные блоки, определенные в категории "Сотрудник" и "Сведения о клиенте", а также в типе Microsoft.Office.Interop.Word.WdBuildingBlockTypes.wdTypeCustom1стандартных блоков.

    buildingBlockControl1 = this.Controls.AddBuildingBlockGalleryContentControl(
        this.Paragraphs[1].Range, "buildingBlockControl1");
    buildingBlockControl1.BuildingBlockCategory = "Employee and Customer Information";
    buildingBlockControl1.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1;
    buildingBlockControl1.PlaceholderText = "Choose your first building block";
    
    buildingBlockControl2 = this.Controls.AddBuildingBlockGalleryContentControl(
        this.Paragraphs[2].Range, "buildingBlockControl2");
    buildingBlockControl2.BuildingBlockCategory = "Employee and Customer Information";
    buildingBlockControl2.BuildingBlockType = Word.WdBuildingBlockTypes.wdTypeCustom1;
    buildingBlockControl2.PlaceholderText = "Choose your second building block";
    

Тестирование проекта

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

Проверка таблицы сотрудников

  1. Нажмите клавишу F5, чтобы запустить проект.

  2. Нажмите кнопку " Выбрать первый стандартный блок ", чтобы отобразить первый элемент управления содержимым коллекции стандартных блоков.

  3. Щелкните стрелку раскрывающегося списка рядом с заголовком Пользовательской коллекции 1 в элементе управления и выберите "Таблица сотрудников".

  4. Щелкните ячейку справа от ячейки "Имя сотрудника" и введите имя.

    Убедитесь, что в эту ячейку можно добавить только текст. PlainTextContentControl позволяет пользователям добавлять только текст, но не другие типы содержимого, такие как изображения или таблицы.

  5. Щелкните ячейку справа от ячейки "Дата найма" и выберите дату в средстве выбора дат.

  6. Щелкните ячейку справа от ячейки Title и выберите один из названий заданий в поле со списком.

    При необходимости введите имя должности, которого нет в списке. Это возможно, поскольку ComboBoxContentControl позволяет пользователям выбрать из списка записей или ввести собственную запись.

  7. Щелкните значок в ячейке справа от ячейки "Рисунок " и перейдите к изображению, чтобы отобразить его.

  8. Попробуйте добавить строки или столбцы в таблицу и попытайтесь удалить строки и столбцы из нее. Убедитесь, что изменить таблицу нельзя. GroupContentControl не позволяет вносить какие-либо изменения.

Проверка таблицы отзывов клиентов

  1. Щелкните " Выбрать второй стандартный блок ", чтобы отобразить второй элемент управления содержимым коллекции стандартных блоков.

  2. Щелкните стрелку раскрывающегося списка рядом с заголовком Пользовательской коллекции 1 в элементе управления и выберите "Таблица клиентов".

  3. Щелкните ячейку справа от ячейки "Имя клиента" и введите имя.

  4. Щелкните ячейку справа от ячейки "Оценка удовлетворенности" и выберите один из доступных вариантов.

    Убедитесь, что нельзя вводить записи. DropDownListContentControl позволяет пользователям только выбирать варианты из списка элементов.

  5. Щелкните ячейку справа от ячейки "Примечания " и введите некоторые комментарии.

    При необходимости добавьте содержимое, отличное от текста, например изображение или вложенную таблицу. Это возможно, поскольку RichTextContentControl позволяет пользователям добавлять содержимое, отличное от текста.

  6. Убедитесь, что вы можете добавить строки или столбцы в таблицу и удалить строки и столбцы из нее. Это возможно, поскольку вы не защитили таблицу, поместив ее в GroupContentControl.

  7. Закройте шаблон.

Следующие шаги

Дополнительные сведения об использовании элементов управления содержимым см. в следующем разделе: