【发布时间】:2016-02-10 04:03:08
【问题描述】:
我想将两个字符串与wingdings 字符进行比较。因为我不知道如何在 C# 字符串中捕获wingdings 代码,所以我无法在两个字符串之间进行可靠的比较...
上下文:C#/Word
问题描述
我有一个带有复选框的 word 文档。此复选框是一个侧翼。我的挑战是说是否使用 C# 选中了此复选框。
我知道如果 hundled 字符串等于此翼字符 &#120、&#253 和 &#254 之一,则会检查检查弓
否则复选框未选中。
在您的帮助下
在您的帮助下,我的问题有了解决方案:),现在,我有另一个问题:))
正如我在顶部所说,所有这一切都是为了将侧翼字符(复选框)与代表选中复选框的所有可能的侧翼进行比较。现在,当我直接将单词中的复选框与编码的侧翼进行比较时,我找不到字符,因为它是以其他格式编码的......
但是当我创建一个 word 文档并输入编码字符然后我将创建的字符与目标 word doc 进行比较时,我有我想要的 :) 但是你看到的这个解决方案需要创建一个新的 word doc :(
无论如何,这是我的解决方案:)
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 !!");
}
}
}
}
提前感谢您的所有帮助:)
【问题讨论】:
标签: c# string ms-word compare wingdings