Как я могу заполнить комбинированный список списком доступных мне папок календаря Outlook? - PullRequest
0 голосов
/ 27 декабря 2018

Я хочу получить список всех календарей (папок) в моем внешнем виде и поместить их в поле со списком.У меня есть идея на высшем уровне о том, как это сделать, но я недостаточно знаю о Microsoft.Office.Interop.Outlook;чтобы получить данные.Я уверен, что это будет своего рода a для каждого combobox1.Items.add (Calendar);

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

private void button2_Click(object sender, EventArgs e)
    {
        Microsoft.Office.Interop.Outlook.Application oApp = null;
        Microsoft.Office.Interop.Outlook.NameSpace mapiNamespace = null;
        Microsoft.Office.Interop.Outlook.MAPIFolder CalendarFolder = null;
        Microsoft.Office.Interop.Outlook.Items outlookCalendarItems = null;

        oApp = new Microsoft.Office.Interop.Outlook.Application();
        //mapiNamespace = oApp.GetNamespace("MAPI"); ;
        //CalendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);
        CalendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);
        outlookCalendarItems = CalendarFolder.Items;
        outlookCalendarItems.IncludeRecurrences = true;

        foreach (Microsoft.Office.Interop.Outlook.MAPIFolder item in CalendarFolder)
        {

        }
    }

1 Ответ

0 голосов
/ 27 декабря 2018

Чтобы получить все подпапки в папке «Календарь», используйте:

var oApp = new Microsoft.Office.Interop.Outlook.Application();
var mapiNamespace = oApp.GetNamespace("MAPI");
var calendarFolder = mapiNamespace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);

foreach (Microsoft.Office.Interop.Outlook.MAPIFolder folder in calendarFolder.Folders)
{
    Console.WriteLine($"{folder.Name}");
}

Протестировано с Outlook 2013 и 2016:

Outlook sub-calendar

Отпечатки

Cal1

...