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


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

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

Применение

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

Тип проекта

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

Версия Microsoft Office

  • Excel 2003

  • Excel 2007

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

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

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

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

  • добавление группы переключателей на лист;

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

ms178767.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 Excel 2003 или Microsoft Office Excel 2007.

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

Разработчик может создать проект книги Excel, который настраивает существующую рабочую книгу. В этом пошаговом руководстве в рабочую книгу будет добавлена диаграмма, а рабочая книга будет использована в новом решении Excel. Источником данных в этом пошаговом руководстве является лист с именем Данные для диаграммы.

Добавление данных

  1. Откройте Excel 2003 или Excel 2007.

  2. Щелкните правой кнопкой мыши лист Лист3, затем в появившемся контекстном меню выберите команду Переименовать.

  3. Укажите для листа имя Данные для диаграммы.

  4. Добавьте на лист Данные для диаграммы следующие данные. При этом ячейка A4 должна быть левым верхним углом, а ячейка E8 — правым верхним углом.

    Q1

    Q2

    Q3

    Q4

    Запад

    500

    550

    550

    600

    Восток

    600

    625

    675

    700

    Север

    450

    470

    490

    510

    Юг

    800

    750

    775

    790

Затем добавьте на первый лист диаграмму, отображающую эти данные. Способы добавления для Excel 2003 и Excel 2007 различаются.

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

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

    Откроется Мастер диаграмм.

  2. Нажмите Далее, не изменяя настройки по умолчанию.

  3. Щелкните поле Диапазон данных и очистите все параметры, выбранные по умолчанию.

  4. На листе Данные для диаграммы выберите блок ячеек, содержащий числа, верхней левой ячейкой которого является A4, а нижней правой — E8.

  5. Нажмите Далее, и затем еще раз Далее для того, чтобы принять настройки по умолчанию для Шага 3.

  6. На Шаге 4 убедитесь, что выбран параметр Как объект в:.

  7. В списке Как объект в: выберите Лист1.

  8. Нажмите кнопку Готово.

  9. Переместите диаграмму, чтобы правый верхний угол был выровнен по ячейке E2.

  10. Сохраните свой файл на диск C и назовите его ExcelChart.xls.

  11. Закройте приложение Excel.

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

  1. На вкладке Вставка в группе Диаграммы щелкните элемент Столбцы, а затем — Все типы диаграмм.

  2. В диалоговом окне Вставка диаграммы нажмите кнопку ОК.

  3. На вкладке Конструктор в группе Данные щелкните Выбор данных.

  4. В диалоговом окне Выбор источника данных в окне Диаграмма щелкните Диапазон данных и очистите все параметры, выбранные по умолчанию.

  5. На листе Данные для диаграммы выберите блок ячеек, содержащий числа, верхней левой ячейкой которого является A4, а нижней правой — E8.

  6. В диалоговом окне Выбор источника данных нажмите кнопку ОК.

  7. Переместите диаграмму, чтобы правый верхний угол был выровнен по ячейке E2.

  8. Сохраните свой файл на диск C и назовите его ExcelChart.xls.

  9. Закройте приложение Excel.

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

На этом этапе на основе книги ExcelChart будет создан проект рабочей книги Excel.

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

  1. Создайте проект книги Excel с именем Моя диаграмма Excel. Выберите в мастере параметр Скопировать существующий документ.

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

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

  3. Нажмите кнопку ОК.

    Созданная книга Excel открывается в конструкторе Visual Studio. Проект Моя диаграмма Excel добавляется в Обозреватель решений.

Установка значений свойств диаграммы

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

Изменение имени элемента управления "Диаграмма"

  • Выберите элемент управления Chart в конструкторе и измените следующие свойства в окне Свойства:

    Свойство

    Значение

    Name

    dataChart

    HasLegend

    false

Добавление элементов управления

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

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

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

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

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

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

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

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

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

    Свойство

    Значение

    Name

    columnChart

    Text

    Гистограмма

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

    Свойство

    Значение

    Name

    barChart

    Text

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

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

    Свойство

    Значение

    Name

    lineChart

    Text

    График

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

    Свойство

    Значение

    Name

    areaBlockChart

    Text

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

Затем напишите код, обновляющий диаграмму при нажатии переключателя.

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

Теперь можно добавить код, который изменяет стиль диаграммы. Для этого необходимо создать для пользовательского элемента управления открытое событие, добавить свойство для задания типа выбора и создать обработчик событий 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.Excel.XlChartType = _
        Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered
    
    Public Property Selection() As Microsoft.Office.Interop.Excel.XlChartType
        Get
            Return Me.selectedType
        End Get
        Set(ByVal value As Microsoft.Office.Interop.Excel.XlChartType)
            Me.selectedType = value
        End Set
    End Property
    
    public event EventHandler SelectionChanged;
    
    private Microsoft.Office.Interop.Excel.XlChartType selectedType = 
        Microsoft.Office.Interop.Excel.XlChartType.xlColumnClustered;
    
    public Microsoft.Office.Interop.Excel.XlChartType Selection
    {
        get
        {
            return this.selectedType;
        }
        set
        {
            this.selectedType = value;
        }
    }
    

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

  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.Excel.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.Excel.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.Excel.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.Excel.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.Excel.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.Excel.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.Excel.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.Excel.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. В Обозревателе решений щелкните правой кнопкой мыши Sheet1.vb или Sheet1.cs и выберите Открыть в конструкторе.

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

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

  4. Измените имя этого элемента управления на ChartOptions1.

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

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

Изменение типа диаграммы, отображаемой на листе

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

    Private Sub ChartOptions1_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles ChartOptions1.SelectionChanged
    
        Try
            dataChart.ChartType = Me.ChartOptions1.Selection
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub
    
    private void ChartOptions1_SelectionChanged(object sender, EventArgs e)
    {
        try
        {
            dataChart.ChartType = this.ChartOptions1.Selection;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
        }
    }
    
  2. В C# необходимо добавлять обработчик событий для пользовательского элемента управления в событие Startup, как показано ниже. Дополнительные сведения о создании обработчиков событий см. в разделе Практическое руководство. Создание обработчиков событий в пакете инструментов Visual Studio для Office.

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

Проверка работы приложения

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

Проверка рабочей книги

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

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

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

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

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

См. также

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

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