wingding 文字で 2 つの文字列を比較したい。C# 文字列で wingdings コードをキャプチャする方法がわからないため、2 つの文字列を実際に比較することはできません...
コンテキスト : C#/Word
問題の説明
チェックボックス付きのワード文書があります。このチェックボックスはウイングです。私の課題は、このチェックボックスがチェックされているか、C# を使用していないかを判断することです。
x
ハンドリングされた文字列がこのウィング文字の1 つと等しい場合、チェックボウがチェックされることを知っていますý
。þ
それ以外の場合、チェックボックスはオフになります。
あなたの助けの後
あなたの助けの後、私は私の問題を解決しました:)、今、私は別の問題を抱えています:))
上で述べたように、これは 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 !!");
}
}
}
}
ご協力いただきありがとうございます:)