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


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

Обновлен: Ноябрь 2007

Применение

Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям Microsoft Office.

Тип проекта

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

Версия Microsoft Office

  • Word 2007

  • Word 2003

Дополнительные сведения см. в разделе Доступность функций по типам приложений и проектов.

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

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

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

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

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

Результат полностью выполненного примера см. в разделе Пример Word Controls.

ms178766.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

  • Visual Studio Tools for Office (необязательный компонент Visual Studio 2008 Professional и Visual Studio Team System);

  • Microsoft Office Word 2003 или Microsoft Office Word 2007.

В данном руководстве используются меню Word 2003, однако эти же параметры доступны на ленте Word 2007.

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

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

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

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

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

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

В проектах Word 2003 меню Вставка в панели инструментов Visual Studio содержит команды Word для добавления диаграммы.

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

  1. В меню Вставка выберите пункт Объект.

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

    ms178766.alert_note(ru-ru,VS.90).gifПримечание.

    Если меню Вставка не отображается, щелкните по документу, чтобы установить на него фокус. Дополнительные сведения см. в разделе Общие сведения о работе с меню Office в среде Visual Studio.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Свойство

    Значение

    Name

    columnChart

    Text

    Гистограмма

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

    Свойство

    Значение

    Name

    barChart

    Text

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

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

    Свойство

    Значение

    Name

    lineChart

    Text

    График

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

    Свойство

    Значение

    Name

    areaBlockChart

    Text

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

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

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

Добавление ссылки на библиотеку объектов Microsoft Graph 11.0

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

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

  2. Откройте вкладку COM.

  3. В списке Имя компонента выберите Microsoft Graph 11.0 Object Library и нажмите кнопку ОК.

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

Для обеспечения правильной работы кнопок необходимо создать для пользовательского элемента управления открытое событие, добавить свойство для задания типа выбора и создать процедуру для события 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. Дополнительные сведения о создании обработчиков событий см. в разделе Практическое руководство. Создание обработчиков событий в пакете инструментов Visual Studio для 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
            'first object is the runtime storage control
            Dim index As Object = 2
            Dim shape As Word.Shape = Me.Shapes.Item(index)
    
            '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
        {
            //first object is the runtime storage control
            object index = 2;
            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 в документах Word

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

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

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