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


Пошаговое руководство. Программирование реакции на события элементов управления NamedRange

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

Применение

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

Тип проекта

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

Версия Microsoft Office

  • Excel 2007

  • Excel 2003

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

В этом пошаговом руководстве демонстрируется добавление элемента управления NamedRange в лист Microsoft Office Excel и программирование реакции на его события с помощью Visual Studio Tools for Office.

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

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

  • Программирование реакции на события элемента управления NamedRange.

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

y4z68kd7.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.

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

На данном этапе с помощью Visual Studio Tools for Office создается проект книги Excel.

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

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

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

Добавление в лист текста и именованных диапазонов

Поскольку элементы управления ведущего приложения являются расширенными объектами Office, их можно добавлять в документ таким же образом, как добавляется собственный объект. Например, можно добавить в лист элемент управления Excel NamedRange, открыв меню Вставка, поместив указатель на пункт Имя и выбрав Определить. Можно также добавить элемент управления NamedRange, перетащив его в лист из панели элементов.

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

Добавление диапазона в лист

  1. Убедитесь, что в конструкторе Visual Studio открыта книга Мои события именованного диапазона.xls и отображается Sheet1.

  2. Перетащите элемент управления NamedRange со вкладки Элементы управления Excel панели элементов в ячейку A1 в Sheet1.

    Открывается диалоговое окно Добавление элемента управления NamedRange.

  3. Убедитесь, что в редактируемом текстовом поле отображается $A$1, и ячейка A1 выбрана. Если ячейка A1 не выбрана, щелкните ее.

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

    Ячейка A1 становится диапазоном namedRange1. Видимых изменений на листе не происходит, однако при выборе ячейки А1 в поле Имя в левом верхнем углу листа отображается namedRange1.

  5. Добавьте другой элемент управления NamedRange в ячейку B3.

  6. Убедитесь, что в редактируемом текстовом поле отображается $B$3, и ячейка B3 выбрана. Если ячейка B3 не выбрана, щелкните ее.

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

    Ячейка В3 становится диапазоном namedRange2.

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

  1. В ячейке A1 введите следующий текст:

    Это пример элемента управления NamedRange.

  2. В ячейке A3 (слева от namedRange2) введите следующий текст:

    События:

В следующих разделах будет написан код, который вставляет текст в namedRange2 и модифицирует свойства элемента управления namedRange2 в ответ на события BeforeDoubleClick, Change и SelectionChange именованного диапазона namedRange1.

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

Вставка текста в Именованный_Диапазон2 в зависимости от события BeforeDoubleClick

  1. В Обозревателе решений щелкните правой кнопкой мыши Sheet1.vb или Sheet1.cs и выберите Просмотреть код.

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

    Private Sub NamedRange1_BeforeDoubleClick( _
        ByVal Target As Microsoft.Office.Interop.Excel.Range, ByRef Cancel As Boolean) _
        Handles NamedRange1.BeforeDoubleClick
    
        With Me.NamedRange2
            .Value2 = "The BeforeDoubleClick event occurred."
            .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red)
            .Font.Italic = True
        End With
    End Sub
    
    private void namedRange1_BeforeDoubleClick(
        Microsoft.Office.Interop.Excel.Range Target, ref bool Cancel)
    {
        this.namedRange2.Value2 = "The BeforeDoubleClick event occurred.";
        this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
        this.namedRange2.Font.Italic = true;
    }
    
  3. В C# необходимо добавлять обработчики событий для именованных диапазонов, как показано в описании события Startup ниже. Сведения о создании обработчиков событий см. в разделе Практическое руководство. Создание обработчиков событий в пакете инструментов Visual Studio для Office.

    this.namedRange1.BeforeDoubleClick += new Microsoft.Office.Interop.Excel.
        DocEvents_BeforeDoubleClickEventHandler(namedRange1_BeforeDoubleClick);   
    
    this.namedRange1.Change += new Microsoft.Office.Interop.Excel.
        DocEvents_ChangeEventHandler(namedRange1_Change);
    
    this.namedRange1.SelectionChange +=new Microsoft.Office.Interop.Excel.
        DocEvents_SelectionChangeEventHandler(namedRange1_SelectionChange);
    

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

Вставка текста в Именованный_Диапазон2 в зависимости от события Change

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

    Private Sub NamedRange1_Change(ByVal Target As Microsoft.Office.Interop.Excel.Range) _
        Handles NamedRange1.Change
    
        With Me.NamedRange2
            .Value2 = "The Change event occurred."
            .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue)
            .Font.Italic = False
        End With
    End Sub
    
    private void namedRange1_Change(Microsoft.Office.Interop.Excel.Range Target)
    {
        this.namedRange2.Value2 = "The Change event occurred.";
        this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Blue);
        this.namedRange2.Font.Italic = false;
    }
    
    y4z68kd7.alert_note(ru-ru,VS.90).gifПримечание.

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

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

Вставка текста в Именованный_Диапазон2 в зависимости от события SelectionChange

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

    Private Sub NamedRange1_SelectionChange(ByVal Target As Microsoft.Office.Interop.Excel.Range) _
        Handles NamedRange1.SelectionChange
    
        With Me.NamedRange2
            .Value2 = "The SelectionChange event occurred."
            .AddComment("SelectionChange always occurs before BeforeDoubleClick.")
            .Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black)
        End With
    End Sub
    
    private void namedRange1_SelectionChange(Microsoft.Office.Interop.Excel.Range Target)
    {
        this.namedRange2.Value2 = "The SelectionChange event occurred.";
        this.namedRange2.AddComment("SelectionChange always occurs before BeforeDoubleClick.");
        this.namedRange2.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Black);
    }
    
    y4z68kd7.alert_note(ru-ru,VS.90).gifПримечание.

    Поскольку двойной щелчок мыши по ячейке в диапазоне Excel приводит к перемещению выделения в диапазон, событие SelectionChange происходит до события BeforeDoubleClick.

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

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

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

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

  2. Поместите курсор в диапазон namedRange1 и убедитесь, что текст, зависящий от события SelectionChange, вставляется, и следовательно комментарий вставляется в лист.

  3. Дважды щелкните мышью в диапазоне namedRange1 и убедитесь, что текст, зависящий от событий BeforeDoubleClick, вставляется красным курсивом а диапазон namedRange2.

  4. Щелкните мышью вне диапазона namedRange1 и обратите внимание, что событие Change возникает при выходе из режима редактирования, даже если не было сделано никаких изменений в тексте.

  5. Измените текст в namedRange1.

  6. Щелкните мышью вне namedRange1 и убедитесь, что текст, зависящий от события Change, вставляется голубым цветом в диапазон namedRange2.

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

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

См. также

Задачи

Практическое руководство. Удаление элементов управления NamedRange во время разработки

Практическое руководство. Изменения размера элементов управления "NamedRange"

Практическое руководство. Добавление элементов управления NamedRange на листы

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

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

Общие сведения о ведущих элементах и элементах управления ведущего приложения

Элемент управления NamedRange

Программные ограничения ведущих элементов и элементов управления ведущего приложения

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

Элементы управления ведущего приложения Excel