Работа с бинарными данными и реестром Windows на платформе .NET
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: отзыв на дипломную работу, рефераты
| Добавил(а) на сайт: Ёлкин.
Предыдущая страница реферата | 8 9 10 11 12 13 14 15 16 17 18 | Следующая страница реферата
// Получаем ссылку на ячейку B3 (точнее на объект Range("B3")),
object oRange = oWorksheet.GetType().InvokeMember("Range", BindingFlags.GetProperty, null, oWorksheet, new object[]{"B3"});
// Получаем ссылку на объект Interior
object oInterior = oRange.GetType().InvokeMember("Interior", BindingFlags.GetProperty, null, oRange, null);
// Устанавливаем заливку (Аналог вызова
// Range("B3").Interior.ColorIndex)
oInterior.GetType().InvokeMember("ColorIndex", BindingFlags.SetProperty, null, oInterior, new object[]{45});
// Устанавливаем способ заливки (Pattern = xlSolid)
/* Для того, чтобы узнать значение константы xlSolid, можно посмотреть документацию, использовать описанный выше импорт библиотеки типов, а можно просто прогнать наш макрос в Visual Basic по шагам и посмотреть значение в контроле переменных, что существенно сэкономит Ваше время. */
// Задаем параметр xlSolid = 1;
object[] args = new object[]{1}
// Устанавливаем свойство Pattern в xlSolid
oInterior.GetType().InvokeMember("Pattern", BindingFlags.SetProperty, null, oInterior, args);
Для того, чтобы задать текст, можно использовать свойство Value объекта Range.
oRange.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, oRange, new object[]{"Привет"});
Далее разбирать код я не буду, советую читателям самим поэкспериментировать с установкой свойств Excel из приложений .NET, по аналогии с приведенными здесь примерами. А сейчас перейдем к событиям Excel и их перехвату, используя позднее связывание.
5. Перехват событий Excel
Перехватывая события Excel, Вы получаете возможность отслеживать его состояние и контролировать некоторые действия. Например, Вы можете отследить закрытие рабочей книги и корректно отключиться от Excel, произведя очистку памяти и прочие завершающие процедуры. Для того, чтобы понять, как перехватывать события, проведем небольшой экскурс в события COM объектов. В этом отступлении я предполагаю, что читатель немного знаком с COM архитектурой, хотя это не обязательно, в конце статьи я приведу уже готовое решение, которое можно использовать в своих приложениях, даже не задумываясь о тонкостях COM.
Если объект (будь-то СОМ или RCW объекта .NET) хочет получать события другого COM объекта, то он должен уведомить об этом источник событий, зарегистрировав себя в списке объектов-получателей уведомлений о событиях. Для этого СОМ предоставляет интерфейс IConnectionPointContainer, содержащий метод FindConnectionPoint. С помощью вызова метода FindConnectionPoint, объект-получатель события получает "точку подключения" - интерфейс IConnectionPoint и регистрирует c помощью метода Advise свою реализацию интерфейса IDispatch, методы которого будут реализовываться при возникновении тех или иных событий. Excel определяет интерфейс, который должен реализовываться классом-приемником событий.
interface
["00024413-0000-0000-C000-000000000046"]
{
DispId(0x61d)]
void NewWorkbook(object Wb);
DispId(0x616)]
Рекомендуем скачать другие рефераты по теме: контрольные бесплатно, выборочное изложение.
Категории:
Предыдущая страница реферата | 8 9 10 11 12 13 14 15 16 17 18 | Следующая страница реферата