C# 为什么'Selection.Font.Bold=1'按预期工作,而'Selection.Range.Bold=1'(Word互操作)
下面是一个使用Word Interop的C#程序:C# 为什么'Selection.Font.Bold=1'按预期工作,而'Selection.Range.Bold=1'(Word互操作),c#,ms-word,office-interop,C#,Ms Word,Office Interop,下面是一个使用Word Interop的C#程序: using Microsoft.Office.Interop.Word; class Program { static void Main(string[] args) { Application app = new Application(); app.Visible = true; Document doc = app.Documents.Add(Visible: true)
using Microsoft.Office.Interop.Word;
class Program
{
static void Main(string[] args)
{
Application app = new Application();
app.Visible = true;
Document doc = app.Documents.Add(Visible: true);
Selection selection = app.Selection;
selection.TypeText("Hello, friend");
selection.TypeParagraph();
selection.Range.Bold = 1;
selection.TypeText("Hello, world??");
selection.TypeParagraph();
selection.Font.Bold = 1;
selection.TypeText("Hello, world!!");
selection.TypeParagraph();
}
}
结果如下:
为什么只有
你好,世界代码>以粗体字体显示,而不是你好,世界???
?使用Selection.Range.Bold
和Selection.Font.Bold
有什么区别?尝试Selection.Range.Bold=True而不是=1。可能取决于您的Office版本。非常确定粗体的真实值是-1
。或者selection.Font.Bold=true代码>可以工作。我也没有测试过。我正在使用Microsoft Word 12.0对象库。根据intellisense,Range.Bold
的类型为int
。将1
替换为-1
不起作用,但将Range
替换为Font
会起作用(请参阅我对问题的更新)。Selection.TypeText()的作用与您认为的不同。它的影响取决于Options.ReplaceSelection属性,显然它是False。所以文本在选择之前被插入。谢谢,汉斯,但不幸的是,我不能说我更聪明了。我很感激Selection.TypeText()
在选择之前插入,但我不认为这与问题有什么关系。请尝试Selection.Range.Bold=True而不是=1。可能取决于您的Office版本。非常确定粗体的真实值是-1
。或者selection.Font.Bold=true代码>可以工作。我也没有测试过。我正在使用Microsoft Word 12.0对象库。根据intellisense,Range.Bold
的类型为int
。将1
替换为-1
不起作用,但将Range
替换为Font
会起作用(请参阅我对问题的更新)。Selection.TypeText()的作用与您认为的不同。它的影响取决于Options.ReplaceSelection属性,显然它是False。所以文本在选择之前被插入。谢谢,汉斯,但不幸的是,我不能说我更聪明了。我很感激Selection.TypeText()
在选择之前插入,但我不认为这与问题有什么关系。