어떻게 검출하는 텍스트와 커서 위치에서 변경어를 사용하는 기능

StackOverflow https://stackoverflow.com/questions/55735

  •  09-06-2019
  •  | 
  •  

문제

쓰고 싶은 단어를 추가하는 몇 가지 계산 및 업데이트의 일부 ui 때마다 사용자가 무언가를하거나 움직이 현재 삽입 지점입니다.보고에서 MSDN 문서,보이지 않는 어떤 확실한 방법 등 TextTyped 이벤트에서 문서 또는 응용 프로그램 개체입니다.

가 이것이 가능한없이 투표주셔서 감사합니다.

도움이 되었습니까?

해결책

당신은 아마 발견 단어는 이벤트, 하지만 그들은 정말 거친 작업과 같은 문서를 열어 또는 스위치를 다른 문서입니다.나 MS 의도적으로 이런 짓을 방지하는 엉터리에서 매크로로 둔 입력합니다.

에서 짧은 거의 없음 작업을 수행 할 수있는 좋은 방법이 무엇을 원합니다. A Word MVP 을 확인하는 것이다.

다른 팁

실제로 있는 방법 코드를 실행하는 단어 입력된 사용할 수 있습니다,스마트 태그 및 재지정 인식 방법,이 방법이 될 때마다 라는 단어 입력,즉 때마다 사용자가 입력한 텍스트 히트 공간,탭,또는 키를 입력하십시오.

하나의 문제는 그러나 이것은 변경할 경우 텍스트"를 사용하여 범위에 있습니다.텍스트"그것은 그것을 감지 말씀으로 변경 및 통화 기능 때문에 그것을 일으킬 수 있는 무한 루프가 있습니다.

여기에 몇 가지 코드가이를 달성하기 위해 사용되:

public class AutoBrandSmartTag : SmartTag
{
    Microsoft.Office.Interop.Word.Document cDoc;

    Microsoft.Office.Tools.Word.Action act = new Microsoft.Office.Tools.Word.Action("Test Action");

    public AutoBrandSmartTag(AutoBrandEngine.AutoBrandEngine _engine, Microsoft.Office.Interop.Word.Document _doc)
        : base("AutoBrandTool.com/SmartTag#AutoBrandSmartTag", "AutoBrand SmartTag")
    {
        this.cDoc = _doc;

        this.Actions = new Microsoft.Office.Tools.Word.Action[] { act };
    }

    protected override void Recognize(string text, Microsoft.Office.Interop.SmartTag.ISmartTagRecognizerSite site, 
        Microsoft.Office.Interop.SmartTag.ISmartTagTokenList tokenList)
    {
        if (tokenList.Count < 1)
            return;

        int start = 0;
        int length = 0;
        int index = tokenList.Count > 1 ? tokenList.Count - 1 : 1;

        ISmartTagToken token = tokenList.get_Item(index);

        start = token.Start;
        length = token.Length;
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top