После создания нового проекта 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.
Для отправки письма используется класс EmailMessage. Чтобы использовать этот класс в нашем примере, надо сначала установить ссылку на пространство имен System.Messaging, выполнив команду меню Project►Add Referenc e. После этого можно пользоваться данным пространством имен при помощи ключевого слова using:
using System.Messaging;
Код метода SendEmail(), который будет отвечать за отправку письма, приведен в листинге 10.23.
Листинг 10.23
private void SendEmail() {
// Создаем экземпляр класса EmailMessage
EmailMessage message = new EmailMessage();
// Тема письма
message.Subject = "Поздравление";
// Текст письма
message.BodyText = "Поздравляю с Днем Варенья!";
// Выбираем адресата
Recipient client = new Recipient(selContact.Email1Address);
message.To.Add(client);
// добавляем в письмо вложенный файл
Attachment image = new Attachment(@"\My Documents\My Pictures\Flower.jpg");
message.Attachments.Add(image);
message.Send("ActiveSync");
txtContact.Text = string.Empty;
menuSoftKey1.Text = "Контакты";
}
Итак, в методе SendEmailобъявляется и создается экземпляр класса EmailMessage. В свойствах Subjectи BodyTextзадаются тема и текст письма. Электронный адрес из выбранного контакта записывается в свойстве EmailMessage.То. Для этого создается экземпляр класса Recipientи передается свойство selContact.Email1Address.
Теперь можно добавить в письмо вложенный файл. Для этого создается экземпляр класса Attachment, которому в конструктор передается полное имя выбранного файла. После этого свойству EmailMessage.Attachmentпередается значение экземпляра.
Теперь для отправки письма все готово. Следует вызвать метод message.Sendи очистить текстовое поле. Также надо восстановить в меню строку Контакты . Так как для menuSoftKey1используются два метода, SendEmailи SelectContact, то нужно определиться, когда какой метод следует использовать. Для этого нужно получить значение свойства menuSoftKey1.Text, как показано в листинге 10.24.
Листинг 10.24
private void menuSoftKey1Click(object sender, EventArgs e) {
if (menuSoftKey1.Text == "Послать")
SendEmail();
else
SelectContact();
}
Настало время проверить нашу программу. После запуска приложения надо выбрать адресата, которому предназначено письмо. Для отображения окна выбора контакта следует нажать кнопку Soft Key 1 . Можно выбрать любой контакт из имеющегося списка. После этого в текстовом поле появится выбранный контакт. При этом пункт меню обретет название Послать .
Читать дальше