Пошаговое руководство. Программирование реакции на события элементов управления NamedRange
В этом пошаговом руководстве демонстрируется добавление элемента управления NamedRange в лист Microsoft Office Excel и создание кода для его событий с помощью средств разработки Office в Visual Studio.
Применение. Сведения этого раздела применяются к проектам уровня документа для Excel 2013 и Excel 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.
В процессе выполнения этого пошагового руководства вы научитесь:
Добавление элемента управления NamedRange в лист.
Программирование реакции на события элемента управления NamedRange.
Тестирование проекта.
Примечание |
---|
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях.Эти элементы определяются используемым выпуском Visual Studio и его параметрами.Дополнительные сведения см. в разделе Параметры Visual Studio. |
Обязательные компоненты
Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.
-
Выпуск Visual Studio 2012, включающий инструменты разработчика Microsoft Office. Дополнительные сведения см. в разделе [Настройка компьютера для разработки решений Office](bb398242\(v=vs.110\).md).
- Excel 2013 или Excel 2010.
Создание проекта
На данном этапе с помощью Visual Studio создается проект книги Excel.
Создание нового проекта
Создайте проект книги Excel с именем Мои события именованного диапазона.Убедитесь, что выбрано Создать новый документ.Дополнительные сведения см. в разделе Практическое руководство. Создание проектов Office в Visual Studio.
Visual Studio открывает созданную книгу Excel в конструкторе и добавляет проект My Named Range Events в обозреватель решений.
Добавление в лист текста и именованных диапазонов
Поскольку элементы управления ведущего приложения являются расширенными объектами Office, их можно добавлять в документ таким же образом, как добавляется собственный объект.Например, можно добавить в лист элемент управления Excel NamedRange, открыв меню Вставка, поместив указатель на пункт Имя и выбрав Определить.Можно также добавить элемент управления NamedRange, перетащив его в лист из панели элементов.
На данном этапе в лист будут добавлены два элемента управления именованного диапазона с помощью панели элементов, а затем в этот лист будет добавлен текст.
Добавление диапазона в лист
Убедитесь, что книга My именованный диапазон Events.xlsx открыта в конструкторе Visual Studio Sheet1.
Перетащите элемент управления NamedRange со вкладки Элементы управления Excel панели элементов в ячейку A1 в Sheet1.
Открывается диалоговое окно Добавление элемента управления NamedRange.
Убедитесь, что в редактируемом текстовом поле отображается $A$1, и ячейка A1 выбрана.Если ячейка A1 не выбрана, щелкните ее.
Нажмите кнопку ОК.
Ячейка A1 становится диапазоном namedRange1.Видимых изменений на листе не происходит, однако при выборе ячейки А1 в поле Имя в левом верхнем углу листа отображается namedRange1.
Добавьте другой элемент управления NamedRange в ячейку B3.
Убедитесь, что в редактируемом текстовом поле отображается $B$3, и ячейка B3 выбрана.Если ячейка B3 не выбрана, щелкните ее.
Нажмите кнопку ОК.
Ячейка В3 становится диапазоном namedRange2.
Добавление текста в лист
В ячейке A1 введите следующий текст:
Это пример элемента управления NamedRange.
В ячейке A3 (слева от namedRange2) введите следующий текст:
События:
В следующих разделах будет написан код, который вставляет текст в namedRange2 и модифицирует свойства элемента управления namedRange2 в ответ на события BeforeDoubleClick, Change и SelectionChange именованного диапазона namedRange1.
Добавление кода в ответ на событие BeforeDoubleClick
Вставка текста в Именованный_Диапазон2 в зависимости от события BeforeDoubleClick
В Обозревателе решений щелкните правой кнопкой мыши Sheet1.vb или Sheet1.cs и выберите Просмотреть код.
Дополните код, чтобы обработчик событий 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; }
В C# необходимо добавлять обработчики событий для именованных диапазонов, как показано в описании события Startup ниже.Сведения о создании обработчиков событий см. в разделе Практическое руководство. Создание обработчиков событий в проектах 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; }
Примечание Поскольку двойной щелчок мыши по ячейке в диапазоне 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); }
Примечание Поскольку двойной щелчок мыши по ячейке в диапазоне Excel приводит к перемещению выделения в диапазон, событие SelectionChange происходит до события BeforeDoubleClick.
Тестирование приложения
Теперь можно протестировать книгу, чтобы убедиться, что текст, описывающий события элемента управления NamedRange, вставляется в другой именованный диапазон при возникновении этих событий.
Проверка документа
Нажмите клавишу F5 для запуска проекта.
Поместите курсор в диапазон namedRange1 и убедитесь, что текст, зависящий от события SelectionChange, вставляется, и следовательно комментарий вставляется в лист.
Дважды щелкните мышью в диапазоне namedRange1 и убедитесь, что текст, зависящий от событий BeforeDoubleClick, вставляется красным курсивом а диапазон namedRange2.
Щелкните мышью вне диапазона namedRange1 и обратите внимание, что событие Change возникает при выходе из режима редактирования, даже если не было сделано никаких изменений в тексте.
Измените текст в namedRange1.
Щелкните мышью вне namedRange1 и убедитесь, что текст, зависящий от события Change, вставляется голубым цветом в диапазон namedRange2.
Следующие действия
В данном пошаговом руководстве показаны основы программирования реакции на события элемента управления NamedRange.Далее будет рассмотрена следующая задача.
- Развертывание проекта.Дополнительные сведения см. в разделе Развертывание решения Office.
См. также
Задачи
Практическое руководство. Изменения размера элементов управления "NamedRange"
Практическое руководство. Добавление элементов управления NamedRange на листы
Практическое руководство. Создание обработчиков событий в проектах Office
Основные понятия
Общие сведения о ведущих элементах и элементах управления ведущего приложения
Автоматизация Excel с помощью расширенных объектов
Программные ограничения ведущих элементов и элементов управления ведущего приложения