private OutlookSession session;
public Form1() {
InitializeComponent();
// Создаем экземпляр сессии Pocket Outlook
session = new OutlookSession();
}
Теперь программист получил доступ к коллекции событий через объект OutlookSession
. Для коллекции Appointment
создается соответствующая переменная, при помощи которой можно получить каждый элемент коллекции, что иллюстрирует код, приведенный в листинге 10.20.
private void menuAppointments_Click(object sender, EventArgs e) {
AppAppts = session.Appointments.Items;
// Проходим через все элементы коллекции
foreach (Appointment appt in AppAppts) {
// Создаем объект ListViewItem
lvItems = new ListViewItem();
// Разделяем полученные результаты по колонкам
lvItems.Text = appt.Start.ToShortDateString();
lvItems.SubItems.Add(appt.Start.ToShortTimeString());
lvItems.SubItems.Add(appt.Subject);
// Добавляем в ListView
lvContacts.Items.Add(lvItems);
}
// He забываем закрыть сессию PocketOutlook
session.Dispose();
}
Также мы можем получить информацию об имеющихся контактах. Но в этом случае рассматривать код не нужно, так как он полностью повторяет пример для КПК.
Отсылка письма
Рассматриваемый пример покажет, как можно посылать электронное письмо любому человеку, чья запись присутствует в списке Контакты. При этом разработчик может присоединять к отправляемому сообщению файл.
В этом примере будет применен другой подход к дизайну программы. Так как средства навигации в смартфоне довольно скудны, желательно сводить к минимуму число нажатий на клавиши. Например, одна и та же клавиша может запускать разные функции.
После создания нового проекта SendEmailSmartphone_CS
на форме надо разместить текстовое поле txtContact
, в котором будет отображаться выбранный электронный адрес.
Также потребуется изменить код из предыдущего примера. Нужно переместить код из обработчика события menuSoftKey1_Click
в отдельный метод SelectContact()
. Это делается для того, чтобы можно было более гибко настраивать программу под свои нужды. Соответствующий код приведен в листинге 10.21.
private void SelectContact() {
// Создаем экземпляр окна выбора контактов
ChooseContactDialog contactDial = new ChooseContactDialog();
// а также убираем возможность создания новых контактов
contactDial.HideNew = true;
// выводим диалоговое окно на экран
if (contactDial.ShowDialog() == DialogResult.OK) {
selContact = contactDial.SelectedContact;
txtContact.Text = selContact.FileAs;
menuSoftKey1.Text = Послать;
}
}
Следует обратить особое внимание на строку
menuSoftKey1.Text = "Послать";
Когда пользователь выберет пункт Контакты
, а затем нужный контакт, то текст в пункте меню menuSoftKey1
меняется на строчку Послать
. Также надо добавить новый пункт меню для очистки текстовых полей. Это позволит пользователю выбрать новый контакт для отправки письма. Надо открыть файл Form1.cs
в дизайнере формы. На правой стороне меню к уже имеющемуся пункту Выход
следует добавить новый пункт меню Очистить
. Созданный пункт получит имя mnuClear
. Код для метода mnuClear_Click
приведен в листинге 10.22.
private void mnuClear_Click(object sender, EventArgs e) {
txtContact.Text = string.Empty;
menuSoftKey1.Text = "Контакты";
}
Это позволить очистить текстовое поле и в пункте меню menuSoftKey1
отобразить строку Контакты
.
Теперь можно писать функцию, отправляющую электронное письмо. В примере сообщение будет отправляться с вложенными файлами. Для примера можно использовать одну из картинок, входящих в состав Windows Mobile 5.0.