2016-08-08 3 views
1

Windows Forms - VSTO - ПерспективыC# Windows Forms - Как программно установить предварительный просмотр изображения для папки с файлами (VSTO 2010)

Фоновые - Я создаю цифровой архив надстройку для офиса, где пользователь может выполнить поиск в базе данных для клиента (которому принадлежит документ), и он сохранит файл в соответствующей папке (-ах) в зависимости от характера файла. Пока это работает для Word, как планировалось, но теперь я использую Outlook, который имеет больше возможностей для рассмотрения (вложения, тело сообщения и т. Д.).

У меня есть работа до тех пор, пока вложения не будут сохранены во временную папку (которая опустошается при каждом закрытии окон), и я могу получить информацию о теле отправителя/субъекта/электронной почты. Перечень вложений приводится в CheckedListBox

Текущая проблема - Когда пользователь смотрит в архив вложение (много документов/отсканированные документы придумают), изображения будут вводить в заблуждение, поскольку они могут быть необходимы или совсем неважно, поэтому я хочу просмотреть изображения.

Я пытаюсь получить его так на случай

private void chkAttachments_SelectedValueChanged(object sender, EventArgs e) 

Изображение показывает в picAttachPreview (PictureBox), как предварительный просмотр этого файла. Это займет изображение от tempfolder (@"c:\temp\DigitalArchive").

Я понимаю, что это неправильно, но я пытаюсь установить источник изображения, показанного на экране, в событии SelectedValueChanged.

Мои [Некорректное] Код -

if(chkAttachments.Text.Contains(".jpg")) 
     { 
      var selectedImage = chkAttachments.SelectedValue.ToString(); 
      picAttachPreview.Image = tempfolder + @"\" + selectedImage; //(A) 
     } 

(A) линия является проблемой, и хотя я понимаю, почему, я не знаю, как решить ее. Путь к файлу построен с tempfolder и selectedImage (например, ScannedDoc.jpg), но тип пути к файлу - String, но picAttachPreview - System.Drawing.Image, поэтому я предполагаю, что я искал неправильное свойство picAttachPreview, чтобы установить источник изображения.

Любая помощь или руководство будут очень оценены. Спасибо.

(Кроме того, если вы знаете, любой хороший способ я могу установить ту же природу предварительного просмотра для документов/PDF, то я буду очень благодарен)

Edit Хотя ссылка решает часть моей проблемы есть вопрос с chkAttachments.SelectedValue.ToString(), который я ответил ниже. (Если кто-нибудь может посоветовать мне на этикетке сайта для этой ситуации.Я могу удалить вопрос или оставить его с ответом, который я нашел, чтобы люди могли найти решение той же проблемы в будущем?)

+0

Возможный дубликат [Загрузка PictureBox изображения из файла ресурсов с помощью пути (часть 3)] (http://stackoverflow.com/questions/17193825/loading-picturebox-image-from-resource-file-with-path-part-3) –

ответ

0

После некоторых играя вокруг, я нашел другую проблему (chkAttachment.Text работает, тогда как .SelectedValue.ToString() нет.

Также проблема со строкой в ​​формате изображения разрешен предваряя путь с Image.FromFile(

Так правильный способ изменения изображения при выборе является:

if(chkAttachments.Text.Contains(".jpg")) 
     { 
      var selectedImage = chkAttachments.Text; 
      picAttachPreview.Image = Image.FromFile(tempfolder + @"\" + selectedImage); 
     } 
+2

Вы также можете рассмотреть возможность использования ' Path.Combine() 'для объединения файловой директории и имени, чтобы позволить .Net заботиться о разделителях пути для вас:' Path.Combine (tempfolder, selectedImage) ' –

+1

Не используйте' Image.FromFile', вместо этого используйте 'Image.FromStream'. –