在Word 中用C#查找Wingdings符号

在Word我们通常在VBA或VB.NET环境下以如下方式查找Wingdings符号:

        Dim wdApp As Word.Application = Globals.ThisDocument.Application
        Dim wdDoc As Word.Document = wdApp.ActiveDocument
        Dim wdRange As Word.Range = wdDoc.Range()
        Dim M As Match
        Dim Character As String
        Dim P As Word.Paragraph
        Dim wdLine As Word.WdUnits = Word.WdUnits.wdLine
        Dim wdCharacter As Word.WdUnits = Word.WdUnits.wdCharacter
        Dim wdExtend As Word.WdMovementType = Word.WdMovementType.wdExtend
        Dim count As Integer = 1

        'Chr(&HFE) 对应一个wingdings符号
        Character = Chr(&HFE)
        wdRange.Select()
        With wdApp.Selection.Find
            .Text = Character
            .Forward = True
            .Wrap = Word.WdFindWrap.wdFindStop
            .Execute()
        End With
        '以下用来移除那个符号所在的行
        wdApp.Selection.HomeKey(wdLine, Type.Missing)
        wdApp.Selection.MoveDown(wdLine, count, wdExtend)
        wdApp.Selection.Delete(wdCharacter, Type.Missing)

可是你会发现在C#中你靠"0xFE"(与VB中的“&HFE"是对应的)并不能找到相应的符号。实际上这里应该在前面加上"F0”成为"0xF0FE"这样就能找到相应的符号了。代码如下(以下代码与上面的代码是等效的):

	    object missing = Type.Missing;
            Word.Application wdApp = Globals.ThisDocument.Application;
            Word.Document wdDoc = wdApp.ActiveDocument;
            Word.Range wdRange = wdDoc.Range(wdDoc.Content.Start,
                wdDoc.Content.End);
            object FindText = Convert.ToChar(0xF0FE);            
            wdRange.Select();
            wdApp.Selection.Find.Text = FindText.ToString();
            wdApp.Selection.Find.Forward = true;
            wdApp.Selection.Find.Wrap = Word.WdFindWrap.wdFindStop;
            object wdLine = Word.WdUnits.wdLine;
            object wdExtend = Word.WdMovementType.wdExtend;
            object count = 1;
            while (wdApp.Selection.Find.Execute())
            {
                wdApp.Selection.HomeKey(ref wdLine, ref missing);
                wdApp.Selection.MoveDown(ref wdLine, ref count, ref wdExtend);
                wdApp.Selection.Delete();
            }


转载于:https://www.cnblogs.com/mksword/archive/2012/12/31/3934020.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值