-1

wingding 文字で 2 つの文字列を比較したい。C# 文字列で wingdings コードをキャプチャする方法がわからないため、2 つの文字列を実際に比較することはできません...

コンテキスト : C#/Word

問題の説明

チェックボックス付きのワード文書があります。このチェックボックスはウイングです。私の課題は、このチェックボックスがチェックされているか、C# を使用していないかを判断することです。

&#120ハンドリングされた文字列がこのウィング文字の1 つと等しい場合、チェックボウがチェックされることを知っています&#253&#254

翼のリストを見る

それ以外の場合、チェックボックスはオフになります。

あなたの助けの後

あなたの助けの後、私は私の問題を解決しました:)、今、私は別の問題を抱えています:))

上で述べたように、これは wingding 文字 (チェックボックス) を、チェックされたチェックボックスを表すすべての可能な wingding と比較することです。さて、単語のチェックボックスをエンコードされたウイングと直接比較すると、他の形式でエンコードされているため、文字が見つかりません...

しかし、単語文書を作成し、エンコードされた文字を入力してから、作成した文字をターゲットの単語文書と比較すると、私は欲しいものを持っています:)しかし、この解決策は新しい単語文書を作成する必要があります:(

とにかく、これが私の解決策です:)

using System;
using System.Collections.Generic;
using System.IO;
using Microsoft.Office.Interop.Word;

namespace Project0
{
    class Program
    {
        static bool isChecked(Range rng)
        {
            var wrdApp = new Application();
            wrdApp.Visible = true;
            Document wrdDoc = wrdApp.Documents.Add();
            Range Rngg = wrdDoc.Paragraphs[1].Range;
            Rngg.Font.Name = "WingDings";   // Why I CREATE A SECOND DOC - I Need this font ;(
            List<string> list = new List<string>{ "\u00fe", "\u00fd", "\u0078" };
            foreach (string k in list)
            {
                if (rng.Text.Contains(Rngg.Text))
                {
                    return true;
                }
            }
            return false;
        }

        static void Main(string[] args)
        {
            List<string> list = new List<string> { "\u00fe", "\u00fd", "\u0078" };

            //            string wPath = @"C:\DV\test.docx";
            //           Document wrdDoc = wrdApp.Documents.Open(FileName: wPath, ReadOnly: false);

            var wrdApp = new Application();
            wrdApp.Visible = true;
            Document wrdDoc = wrdApp.Documents.Add();

            // I SIMULATE MY DOC
            wrdDoc.Paragraphs[1].Range.Font.Name = "WingDings";
            wrdDoc.Paragraphs[1].Range.Text = list[1];  // I put a checked box

            // CAN I DETERMINE IF THERE IS A CHECKBOX
            if (isChecked(wrdDoc.Paragraphs[1].Range))
            {
                Console.WriteLine("Heeah, there's a checked checkbox !!");
            }
        }
    }
}

ご協力いただきありがとうございます:)

4

2 に答える 2

0

文字列を比較すると、値によって比較されます。

したがって、文字列変数で巻線を使用して文字列を取得し、string.comapare() メソッドを使用して比較することができます。しかし、あなたの問題についてもっと詳しく説明する必要があると思います。

于 2016-02-10T05:32:18.797 に答える