Обнулить дату контакта (Birthday = null)
От: sorgpro Россия  
Дата: 18.03.10 07:31
Оценка:
Непонятно как можно сбросить дату контакта (Anniversary или Birthday) программно. Интерактивно это можно сделать выбирая значение None в DateTimePicker'е формы.

private void miOK_Click(object sender, EventArgs e) 
{ 
   using (OutlookSession os = new OutlookSession()) 
   { 
        Contact contact = new Contact(); 
        contact.FirstName = "Nik"; 
        contact.FileAs = contact.FirstName; 
        os.Contacts.Items.Add(contact); 
        DateTime dt = new DateTime(1601, 1, 1); 

        // Изначально даты равны. 
        // Пустая дата означает 1 января 1601 года 
        System.Diagnostics.Debug.Assert(contact.Birthday == dt); 

        // Установить новую дату 
        contact.Birthday = new DateTime(2010, 3, 17); 
        contact.Update(); 

        // Теперь даты отличаются 
        System.Diagnostics.Debug.Assert(contact.Birthday != dt); 

        // Никак не удается сбросить дату: 
        try 
        { 
            // Вариант 1 
            contact.Birthday = dt; 
            contact.Update(); 
        } 
        catch 
        { 
            // Не работает. Исключение при Update() 
        } 

        try 
        { 
            // Вариант 2 
            contact.Properties[ContactProperty.Birthday] = null; 
            contact.Update(); 
        } 
        catch 
        { 
            // Не работает. Исключение при присвоении 
        } 

        try 
        { 
            // Вариант 3 ( это даже не вариант, просто попытка :-) ) 
            contact.Properties[ContactProperty.Birthday] = dt.ToString(); 
            contact.Update(); 
        } 
        catch 
        { 
            // Не работает. Исключение при присвоении 
        } 
        os.Contacts.Items.Remove(contact); 
    } 
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.