Как удалить Word.Selection? - PullRequest
4 голосов
/ 18 июля 2011

В контексте надстройки Outlook, использующей WordEditor из Outlook.Inspector, я хотел бы удалить выделенную область после ее замены пользовательским текстом.

Например, если я выбираю что-то, я могу изменить выделенный текст следующим образом:

Word.Selection sel = doc.Windows[1].Selection;
Word.Range range = sel.Range;

    if(sel.Text.Length == 0) {
        MessageBox.Show("No Text is selected");

        return;
    }

sel.Text = "New Text";
sel.Collapse();

Если я вызову эту функцию еще раз, теперь sel.Text.Length будет равно 1 вместо 0.

Ответы [ 2 ]

4 голосов
/ 19 июля 2011

У меня была такая же проблема в MS Word.В Word есть метод Selection.Move ().Если вы используете его, он отменит выделенный текст и поместит курсор в конец выделенного текста.Например, вы можете использовать

ThisAddIn.Application.Selection.Move()

. Это работает в надстройке Word, если вы хотите отменить выделение текста, она может также работать в Outlook, попробуйте и дайте мне знать

1 голос
/ 24 октября 2012

Возможно, вы захотите попробовать

Selection.Collapse Direction := wdCollapseStart

Это установит начальную и конечную позиции текущего выбора на одно и то же значение, а именно начало текущего выбора (вместо wdCollapseEnd укажите конец текущего выбора). Результат должен быть программно неотличим от фактического удаления выделения.

надеюсь, это поможет, Карстен

относится к: слово 2007 (проверено), слово 2010; возможно другие релизы

...