/ / Nie można iterować po kolekcji Shapes - ms-word, interop, vsto

Nie można iterować poprzez kolekcję Shapes - ms-word, interop, vsto

C # i interakcja słów, Mam dokument tekstowy z niektórymi polami tekstowymi (kształty msoTextBox), problem, którego nie mogę iterować po kolekcji kształtów z poniższym kodem:

foreach (Shape shape in WordDocument.Shapes)
{}

chociaż podczas ustawiania punktu przerwania w linii pętli widzę, że WordDocument.Shapes.Count zwraca 4.

Zauważam, że pola tekstowe są wstawiane przy użyciu otwartego xml sdk.

Odpowiedzi:

2 dla odpowiedzi № 1

Znalazłem problem z użyciem pól tekstowych. Popatrz na to rozwiązanie.


0 dla odpowiedzi nr 2

Od Code Project :

    // Get the word count from all shapes
foreach (Word.Shape shape in wordDocument.Shapes)
{
if (shape.TextFrame.HasText < 0)
{
count+=GetCountFromRange(shape.TextFrame.TextRange,wordDocument,word);
}
}

Z tego, co powiedziałeś, wyglądasz, jakbyś postąpił właściwie.

Czy możesz podać nam błąd StackTrace?

PS: Wiem, że moje pytanie powinno być w komentarzach, ale nie byłoby czytelne :)