2016-08-16 6 views
0

Я использую следующий код для добавления гиперссылок к моему MailItemПерспективы VSTO - Добавить новую строку в WordEditor Document Hyperlink

object link = url + System.Environment.NewLine; 

Microsoft.Office.Interop.Outlook.MailItem currentMessage = MyAddIn.Application.ActiveInspector().CurrentItem; 
Microsoft.Office.Interop.Word.Document doc = currentMessage.GetInspector.WordEditor; 
Microsoft.Office.Interop.Word.Selection sel = doc.Windows[1].Selection; 
doc.Hyperlinks.Add(sel.Range, ref result, ref missing, ref missing, ref link, ref missing); 

В то время как это делает вставить каждую ссылку на новую строку в Outlook, MailItem, он также показывает, проводное характер перед каждой новой строки, начиная с 2-й линии: enter image description here

UPDATE: Я также попытался добавить его в диапазон выбора, как

sel.Range.Text = System.Environment.Newline; 

, но это не добавило новой линии вообще.

ответ

1

Поскольку Outlook использует редактор Microsoft Word для составления сообщений, объектная модель Word применяется здесь. sel в вашем коде представляет объект Selection, в котором находится точка ввода в сообщении. Переопределяя точку выбора после каждой вставки гиперссылки, давайте Слово узнаем, куда положить ссылку.

doc.Hyperlinks.Add(sel.Range, ref result, ref missing, ref missing, ref link, ref missing); 
sel.EndKey(Word.WdUnits.wdLine); 
sel.InsertAfter("\n"); 
sel.MoveDown(Word.WdUnits.wdLine); 

Environment.NewLine предполагается получить строку новой строки, как определено для конкретной среды используется, но явно не работает здесь, следовательно, "\n". И я не могу придумать способ сделать конкатенацию "\n" с работой URL как link не string и Hyperlinks.Add требует, чтобы это было object.

+0

Очень ценится @joeschwa. Работает как шарм! – pixel