我通过Interop库在多个word文档中生成形状。 每个形状都有一个文本框,显示有关它的一些细节。
不是在创建一个输出后关闭原始文档,而是为下一个输出重新打开它我想清理保存修改后创建的形状,在我用来创建的两个方法下面然后清理形状: / p>
static void DrawCable(double angle, int identifiant, WdColor couleur)
{
float origineX = 365;
float origineY = 641;
float extremiteX = (float)Math.Round(origineX + 130 * Math.Cos(angle));
float extremiteY = (float)Math.Round(origineY - 130 * Math.Sin(angle));
Shape line = oDoc.Shapes.AddLine(origineX, origineY, extremiteX, extremiteY, ref oMissing);
Shape etiquette = oDoc.Shapes.AddShape(1, (float)Math.Round(extremiteX - 7 - 7 * Math.Cos(angle) ), (float)Math.Round(extremiteY - 5 + 5 * Math.Sin(angle)), 15, 11, ref oMissing);
etiquette.TextFrame.TextRange.Text = identifiant.ToString();
}
static void CleanDocument()
{
foreach (Shape shp in oDoc.Shapes)
shp.Delete();
}
每当我使用
运行代码时 for (int multiplier = 0; multiplier < 4; multiplier++ )
{
Program.DrawCable(Math.PI * multiplier / 2, multiplier, WdColor.wdColorRed);
}
所有线条形状都被删除得很好但不是“文本框”形状(即使在技术上它们是自动形状 - 对于文本框也是如此)。 我测试了添加输出以查看Shapes集合的内容:
static void CleanDocument()
{
foreach (Shape shp in oDoc.Shapes)
Console.WriteLine( shp.ID + "\t" + shp.Type.ToString() );
}
列出了所有形状但是只要我添加shp.Delete()行,Textbox就不再是该集合的成员(即它们不再出现在文本输出中)。
任何帮助都将不胜感激。