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


Пошаговое руководство. Обновление диаграммы в документе с помощью переключателей

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

Применение. Сведения этого раздела применяются к проектам уровня документа для Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

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

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

  • группировка переключателей путем добавления их в пользовательский элемент управления;

  • изменение стиля диаграммы при выборе определенного параметра.

Для просмотра результатов в виде полного примера см. пример элементов управления Word в разделе Образцы и пошаговые руководства разработки Office.

ПримечаниеПримечание

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

Обязательные компоненты

Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.

-

Выпуск Visual Studio 2012, включающий инструменты разработчика Microsoft Office. Дополнительные сведения см. в разделе [Настройка компьютера для разработки решений Office](bb398242\(v=vs.110\).md).
  • Word 2013 или Word 2010.

Создание проекта

Сначала следует создать проект документа Word.

Создание нового проекта

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

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

Добавление диаграммы в документ

Добавление диаграммы

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

  2. В группе Текст нажмите разворачивающуюся кнопку Вставка объекта и выберите пункт Объект.

    Откроется диалоговое окно Объект.

  3. В списке Тип объекта на вкладке Создать выберите Microsoft Smart Tags 2.0 Type Library и нажмите кнопку ОК.

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

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

  5. Щелкните диаграмму правой кнопкой мыши и выберите команду Формат объекта.

  6. На странице Стиль диалогового окна Форматирование объекта выберите пункт Квадрат и нажмите кнопку ОК.

Добавление пользовательского элемента управления в проект

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

Добавление пользовательского элемента управления

  1. В обозревателе решений выберите проект Параметры диаграммы.

  2. В меню Проект выберите команду Добавить новый элемент.

  3. В диалоговом окне Добавить новый элемент щелкните Пользовательский элемент управления, назовите элемент управления ChartOptions и нажмите кнопку Добавить.

Добавление элементов управления Windows Forms в пользовательский элемент управления

  1. Если пользовательский элемент управления не видим в конструкторе, дважды щелкните ChartOptions в обозревателе решений.

  2. Перетащите первый элемент управления Переключатель с вкладки Стандартные элементы управленияПанели элементов в пользовательский элемент управления и измените следующие свойства:

    Свойство

    Значение

    Имя

    columnChart

    Текст.

    Гистограмма

  3. Добавьте второй элемент управления Переключатель в пользовательский элемент управления и измените следующие свойства:

    Свойство

    Значение

    Имя

    barChart

    Текст.

    Линейчатая диаграмма

  4. Добавьте третий элемент управления Переключатель в пользовательский элемент управления и измените следующие свойства:

    Свойство

    Значение

    Имя

    lineChart

    Текст.

    График

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

    Свойство

    Значение

    Имя

    areaBlockChart

    Текст.

    Заполненная диаграмма

Добавление ссылок

Для доступа к схеме из пользовательского элемента управления в документе, в проекте должна быть указана ссылка Microsoft.Office.Interop.Graph.

Добавление ссылки на сборку Microsoft.Office.Interop.Graph

  1. В меню Проект щелкните команду Добавить ссылку.

    Откроется диалоговое окно Добавление ссылки.

  2. На вкладке .NET выберите Microsoft.Office.Interop.Graph и нажмите кнопку ОК.Выберите версию сборки 14.0.0.0.

Изменение стиля диаграммы при выборе определенного параметра

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

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

  1. В обозревателе решений щелкните правой кнопкой мыши пользовательский элемент управления и выберите команду Перейти к коду.

  2. Добавьте в класс ChartOptions код для создания события SelectionChanged и свойства Selection:

    Public Event SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    
    Private selectedType As Microsoft.Office.Interop.Graph.XlChartType = _
        Microsoft.Office.Interop.Graph.XlChartType.xlColumnClustered
    
    Public Property Selection() As Microsoft.Office.Interop.Graph.XlChartType
        Get
            Return Me.selectedType
        End Get
        Set(ByVal value As Microsoft.Office.Interop.Graph.XlChartType)
            Me.selectedType = value
        End Set
    End Property
    
    public event EventHandler SelectionChanged;
    
    private Microsoft.Office.Interop.Graph.XlChartType selectedType =
        Microsoft.Office.Interop.Graph.XlChartType.xlColumnClustered;
    
    public Microsoft.Office.Interop.Graph.XlChartType Selection
    {
        get
        {
            return this.selectedType;
        }
        set
        {
            this.selectedType = value;
        }
    }
    

Обработка события переключателей CheckedChange

  1. Задайте тип диаграммы в обработчике событий CheckedChanged переключателя areaBlockChart и вызовите событие:

    Private Sub areaBlockChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles areaBlockChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlAreaStacked
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void areaBlockChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlAreaStacked;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  2. Задайте тип диаграммы в обработчике событий CheckedChanged переключателя barChart.

    Private Sub barChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles barChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlBarClustered
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void barChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlBarClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  3. Задайте тип диаграммы в обработчике событий CheckedChanged переключателя columnChart:

    Private Sub columnChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles columnChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
    
            Me.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlColumnClustered
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void columnChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlColumnClustered;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  4. Задайте тип диаграммы в обработчике событий CheckedChanged переключателя lineChart:

    Private Sub lineChart_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles lineChart.CheckedChanged
    
        If (CType(sender, RadioButton).Checked) Then
            Me.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlLineMarkers
            RaiseEvent SelectionChanged(Me, EventArgs.Empty)
        End If
    End Sub
    
    private void lineChart_CheckedChanged(object sender, EventArgs e)
    {
        if (((RadioButton)sender).Checked)
        {
            this.selectedType = Microsoft.Office.Interop.Graph.XlChartType.xlLineMarkers;
            if (this.SelectionChanged != null)
            {
                this.SelectionChanged(this, EventArgs.Empty);
            }
        }
    }
    
  5. В C# необходимо добавить обработчики событий для переключателей.Можно добавить код в конструктор ChartOptions после вызова InitializeComponent.Дополнительные сведения о создании обработчиков событий см. в разделе Практическое руководство. Создание обработчиков событий в проектах Office.

    public ChartOptions()
    {
        InitializeComponent();
    
        areaBlockChart.CheckedChanged += new EventHandler(areaBlockChart_CheckedChanged);
        barChart.CheckedChanged += new EventHandler(barChart_CheckedChanged);
        columnChart.CheckedChanged += new EventHandler(columnChart_CheckedChanged);
        lineChart.CheckedChanged += new EventHandler(lineChart_CheckedChanged);
    }
    

Добавление пользовательского элемента управления в документ

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

Добавление пользовательского элемента управления в документ

  1. В меню Построение выберите Построить решение.

    Пользовательский элемент управления ChartOptions добавляется в Панель элементов.

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

  3. Перетащите элемент управления ChartOptions из Панели элементов в документ.

    В проект добавится новый элемент управления с именем ChartOptions1.

Изменение типа диаграммы

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

Изменение типа диаграммы, отображаемой в документе

  1. Добавьте следующий обработчик событий в класс ThisDocument:

    Private Sub ChartOptions1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles ChartOptions1.SelectionChanged
    
        Try
            Dim shape As Word.Shape = Me.Shapes.Item(1)
    
            ' Activate the shape.
            shape.Activate()
    
            Dim dataChart As Graph.Chart = CType(shape.OLEFormat.Object, Graph.Chart)
            dataChart.ChartType = Me.ChartOptions1.Selection
    
            ' Deactivate the shape.
            Me.ChartOptions1.Select()
    
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    
    private void ChartOptions1_SelectionChanged(object sender, EventArgs e)
    {
        try
        {
            object index = 1;
            Word.Shape shape = this.Shapes.get_Item(ref index);
    
            // Activate the shape.
            shape.Activate();
    
            Microsoft.Office.Interop.Graph.Chart dataChart = 
                (Microsoft.Office.Interop.Graph.Chart)shape.OLEFormat.Object;
            dataChart.ChartType = this.ChartOptions1.Selection;
    
            // Deactivate the shape.
            this.ChartOptions1.Select();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    
  2. В C# необходимо добавлять обработчик событий для пользовательского элемента управления в событие Startup.

    this.ChartOptions1.SelectionChanged += new EventHandler(ChartOptions1_SelectionChanged);
    

Тестирование приложения

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

Проверка документа

  1. Нажмите клавишу F5 для запуска проекта.

  2. Выберите различные переключатели.

  3. Убедитесь, что стиль диаграммы меняется в соответствии с выбранным параметром.

Следующие действия

Далее будут рассмотрены следующие задачи:

См. также

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

Пошаговые руководства с использованием Word

Ограничения по использованию элементов управления Windows Forms в документах Office

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

Образцы и пошаговые руководства разработки Office