Я создал Word VSTO, эффект которого заключается в перечислении определенных файлов слов, которые содержат фрагменты текста для вставки в активный документ Word. Код для этой цели:
string filename = “C:\somefile.docx”;
if (File.Exists(filename))
{
// get a reference to our open document
Document document = Globals.ThisAddIn.Application.ActiveDocument;
try
{
// our cursor position is selection
Selection sel = document.Windows[1].Selection;
// import fragment at selection point
sel.Range.ImportFragment(filename, false);
// move our cursor down one line
sel.Move(WdUnits.wdLine, 1);
// select our previously imported fragment
// update our ask field
document.Fields.Locked = 0;
document.Fields.Update();
if (sel != null)
Marshal.ReleaseComObject(sel);
//document.Saved = false;
}
catch (System.Exception es) // catch # 1
{
throw (es);
}
finally
{
//if (doc != null) Marshal.ReleaseComObject(doc);
if (document != null) Marshal.ReleaseComObject(document);
}
}
else
{
}
Теперь мне нужно усовершенствовать операцию, позволив пользователю включить в импортируемый фрагмент поле Ask с закладкой, а затем, как только он будет импортирован, попросить пользователя обновить информацию. Например, если импортированный фрагмент содержит правильно сформированное поле «Спросить» (ie {ASK ExpDate «Какая дата истечения срока действия предложения?» \ D Нет} и затем ссылка на закладку похожа на {REF ExpDate}), автоматически я хочу Поле «спросить», чтобы открыть диалоговое окно и задать вопрос так же, как если бы это было следующее поле «Аск» в строке. В настоящее время я обновляю ВСЕ поля в документе, когда я хочу сделать только те, которые содержатся в импортированном фрагменте.
Поэтому вопрос заключается в том, как я могу обновить любые поля, содержащиеся в импортированный файл без запуска обновления для всех полей в документе?
В качестве альтернативы, возможно, можно обновить объект выбора, чтобы выбрать импортированный фрагмент, а затем обновить поля в этом диапазоне выбора? Как бы я это сделал?
Большое спасибо в ожидании DWE