Книга: Программирование КПК и смартфонов на .NET Compact Framework

Работа с адресной книгой

Работа с адресной книгой

В этом разделе будет рассмотрен пример, в котором будет добавлена новая запись в объект Контакты. Для этого надо, как и прежде, добавить в проект ссылки на соответствующие сборки Miсrosoft.WindowsMobile.Forms и Microsoft.WindowsMobilе.PocketOutlook. А в редакторе кода надо добавить объявления для пространств имен Microsoft.WindowsMobilе.Forms и Microsoft.WindowsMobile.PocketOutlook сразу после существующих объявлений.

Теперь можно обращаться к Контактам через объект OutlookSession. Чтобы добавить новый контакт в коллекцию Контакты, надо разместить на форме кнопку с именем butAddContact и написать код, приведенный в листинге 10.2.

Листинг 10.2

private OutlookSession session;
public Form1() {
 InitializeComponent();
 // Создаем экземпляр сессии Pocket Outlook
 session = new OutlookSession();
}
private void butAddContact_Click(object sender, EventArgs e) {
 Contact contact = new Contact();
 contact.FirstName = "Билл";
 contact.LastName = "Гейтс";
 contact.Email1Address = "[email protected]";
 contact.Birthday = new DateTime(1955,10,28);
 contact.CompanyName = "Microsoft";
 contact.WebPage = new Uri("http://www.microsoft.com");
 session.Contacts.Items.Add(contact);
}

Код очень прост и практически не требует комментариев. В начале работы создается переменная contact, в которой можно задавать самые различные параметры. В этом примере использовались только основные свойства. Были указаны имя, фамилия, электронный адрес, день рождения, имя компании и ее веб-страница. После того как новый контакт будет добавлен в список, нужно закрыть сессию при помощи метода Dispose().

После запуска приложения следует нажать кнопку Добавить в Контакты. В результате этого в списке Контакты появится новая запись (рис. 10.6)


Рис. 10.6. Просмотр списка контактов

Но разработчик может не только добавлять, но и получать информацию из имеющегося элемента списка. Для этого на форму надо поместить список lstContacts и кнопку butGetInfo. Прежде чем получить информацию о нужном нам человеке, нужно сначала получить сам список контактов. И только потом, выбрав из этого списка нужную запись, можно получить дополнительную информацию. Для получения полного списка контактов нужно добавить код в обработчик события Form_Load, как это показано в листинге 10.3.

Листинг 10.3

private void Form1_Load(object sender, EventArgs e) {
 // Получаем список контактов
 lstContacts.DataSource = session.Contacts.Items;
}

Теперь при загрузке формы список автоматически будет заполнен. Пользователь может выбрать любую запись и получить дополнительную информацию о выбранном контакте. Для этого в событии butGetInfo_Click создается код, приведенный в листинге 10.4.

Листинг 10.4

private void butGetInfo_Click(object sender, EventArgs e) {
 // Получим информацию о выбранном контакте
 session.Contacts.Items[lstContacts.SelectedIndex].ShowDialog();
}

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

Удалить контакт из списка еще проще, чем создать его. На форму надо добавить еще одну кнопку butDelContact, с которой будет связан код, приведенный в листинге 10.5.

Листинг 10.5

private void butDelContactClick(object sender, EventArgs e) {
 // Удаляем выбранный контакт
 session.Contacts.Items[lstContacts.SelectedIndex].Delete();
}

Также из приложения можно вызвать стандартное окно выбора контакта, используемое программой Pocket Outlook. Теперь совсем не обязательно закрывать нашу программу и открывать окно контактов, как это было сделано при добавлении новой записи в список контактов.

Стандартное окно имеет некоторые дополнительные возможности, которые могут пригодиться разработчикам. Доступ к данному окну осуществляется через класс ChooseContactDialog, как показано в листинге 10.6.

Листинг 10.6

private void butShowContactsClick(object sender, EventArgs e) {
 ChooseContactDialog contactDialog = new ChooseContactDialog();
 // Прячем пункт меню Новый контакт
 contactDialog.HideNew = true;
 // Выводим диалоговое окна на экран
 contactDialog.ShowDialog();
 // Показываем выбранный контакт
 MessageBox.Show(contactDialog.SelectedContactName, "Выбранный контакт");
}

Оглавление книги


Генерация: 1.294. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз