private OutlookSession session;

public Form1() {

 InitializeComponent();

 // Создаем экземпляр сессии Pocket Outlook

 session = new OutlookSession();

}

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

Листинг 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();

}

Также мы можем получить информацию об имеющихся контактах. Но в этом случае рассматривать код не нужно, так как он полностью повторяет пример для КПК.

<p>Отсылка письма</p>

Рассматриваемый пример покажет, как можно посылать электронное письмо любому человеку, чья запись присутствует в списке Контакты. При этом разработчик может присоединять к отправляемому сообщению файл.

В этом примере будет применен другой подход к дизайну программы. Так как средства навигации в смартфоне довольно скудны, желательно сводить к минимуму число нажатий на клавиши. Например, одна и та же клавиша может запускать разные функции.

После создания нового проекта SendEmailSmartphone_CS на форме надо разместить текстовое поле txtContact, в котором будет отображаться выбранный электронный адрес.

Также потребуется изменить код из предыдущего примера. Нужно переместить код из обработчика события menuSoftKey1_Click в отдельный метод SelectContact(). Это делается для того, чтобы можно было более гибко настраивать программу под свои нужды. Соответствующий код приведен в листинге 10.21.

Листинг 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.

Листинг 10.22

private void mnuClear_Click(object sender, EventArgs e) {

 txtContact.Text = string.Empty;

 menuSoftKey1.Text = "Контакты";

}

Это позволить очистить текстовое поле и в пункте меню menuSoftKey1 отобразить строку Контакты.

Теперь можно писать функцию, отправляющую электронное письмо. В примере сообщение будет отправляться с вложенными файлами. Для примера можно использовать одну из картинок, входящих в состав Windows Mobile 5.0.

Перейти на страницу:

Похожие книги