1

私は Visio と c# を使用していますが、Visio の形状に問題があります。

文字列と Visio 図形を含む辞書を提供します

SortedDictionary<string, Visio.Shape> DicShapes 
                       = new SortedDictionary<string, Visio.Shape>();

DicShapes.Add("Pos3", shape_Pos3);

したがって、Visio.Shape を使用しようとすると、COMExeption が発生します。

foreach (KeyValuePair<string, Visio.Shape> kvp2 in DicShapes) 
{
    if (kvp2.Key == "Pos3")
    {
        beginXCell.GlueToPos(kvp2.Value, 0.5, 1);
    }
}

誰が私が間違っているのかヒントを教えてもらえますか?

4

1 に答える 1

2

あなたのキーは一意であると述べたので、私はお勧めします

Visio.Shape selectedShape;

if (DicShapes.TryGetValue("Pos3", out selectedShape))
{
    beginXCell.GlueToPos(selectedShape, 0.5, 1);
}

全体を反復する代わりにSortedDictionary

一意でないキーを処理する必要がある場合は、linq 拡張メソッドを使用して目的のサブセットを抽出できます。

var filtered = DicShapes.Where(kvp => kvp.Key == "Pos3");
于 2012-05-04T07:11:20.803 に答える