C# 如何添加新的文本范围。运行到PowerPoint文本框?

C# 如何添加新的文本范围。运行到PowerPoint文本框?,c#,vba,textbox,vsto,powerpoint,C#,Vba,Textbox,Vsto,Powerpoint,我想复制一些文本及其格式。如果整个文本以一种方式格式化,那么很容易做到,但我无法复制以不同方式格式化的文本(例如,文本的某些部分为粗体,而另一些部分为非粗体) 有一些类似于Run的东西,我知道如何阅读它(以及如何使用openxml添加它,但是外接程序必须在打开的演示文稿上工作),但是如何将它添加/插入到某个文本框中?我找不到像Shape.TextFrame2.TextRange.Runs.Add()或Shape.TextFrame2.TextRange.Runs(1.Insert())这样的方法

我想复制一些文本及其格式。如果整个文本以一种方式格式化,那么很容易做到,但我无法复制以不同方式格式化的文本(例如,文本的某些部分为粗体,而另一些部分为非粗体)


有一些类似于Run的东西,我知道如何阅读它(以及如何使用openxml添加它,但是外接程序必须在打开的演示文稿上工作),但是如何将它添加/插入到某个文本框中?我找不到像Shape.TextFrame2.TextRange.Runs.Add()或Shape.TextFrame2.TextRange.Runs(1.Insert())这样的方法。好的,我找到了如何执行此操作:

for (int k = 0; k < sourceShapeProps.textFrame.TextRange.Runs.Count; k++)
   {
    var run = sourceShapeProps.textFrame.TextRange.get_Runs(k + 1, 1);
    var characters = cell.Shape.TextFrame2.TextRange.get_Characters(run.Start, run.Length);
    characters.Font.Fill.ForeColor.RGB = run.Font.Fill.ForeColor.RGB;
    characters.Font.Bold = run.Font.Bold;
    characters.Font.Italic = run.Font.Italic;
   }
for(int k=0;k
如何为

Shape1.TextFrame.TextRange.Runs(1).Font.Bold = MsoTriState.msoTrue;

但是上面的代码没有将run中的第一个文本块设置为true,没有应用粗体。

就像我在上面发布的:var characters=cell.Shape.TextFrame2.TextRange.get_characters(run.Start,run.Length);characters.Font.Bold=MsoTriState.msoTrue;您也可以使用一些没有“粗体”选项的字体。感谢您提供的信息,似乎只有Runs可以用于get,而不支持set,这是按照您所说的方式完成的。我只是旋转了foreach中的运行,并使用字符块来更新值。