C# 替换visio c中的图像/形状#

C# 替换visio c中的图像/形状#,c#,replace,automation,visio,C#,Replace,Automation,Visio,我使用以下代码将jpeg图像拖放到Visio绘图页上,但每次运行应用程序时,我拖放的图像都会放在先前拖放的图像的顶部。我的问题是如何替换图像/形状,以便用新图像替换早期图像。 我尝试使用shpNew.ReplaceShape(imageFile,0);但它再次与先前的图像重叠 我的另一个想法是删除先前的形状并删除新的图像。 请让我知道有效的方法 private void DropImage(Visio.Page vPag, string imageFile) { if (

我使用以下代码将jpeg图像拖放到Visio绘图页上,但每次运行应用程序时,我拖放的图像都会放在先前拖放的图像的顶部。我的问题是如何替换图像/形状,以便用新图像替换早期图像。 我尝试使用shpNew.ReplaceShape(imageFile,0);但它再次与先前的图像重叠

我的另一个想法是删除先前的形状并删除新的图像。 请让我知道有效的方法

private void DropImage(Visio.Page vPag, string imageFile)
    {
        if (vPag != null)
        {
            var shpNew = vPag.Import(imageFile);
            //Set position
            shpNew.CellsU["PinX"].FormulaU = "75mm";
            shpNew.CellsU["PinY"].FormulaU = "175mm";
            //Set size
            shpNew.CellsU["Width"].FormulaU = "100mm";
            shpNew.CellsU["Height"].FormulaU = "80mm";
        }
    }

ReplaceShape方法仅适用于基于主控形状的形状

Shape.ReplaceShape方法(Visio) 将指定的形状替换为作为 第一个参数,并返回新形状

但对于所有visio形状和外来对象(如插入的图像),不是

我发现您以前的帖子:
subv()
将shp变暗为形状
形状
形状
尺寸x为单个,y为单个
对于ActivePage.Shapes中的每个shp
'查找图像
如果shp.Type=4,则
'将os变量定义为已创建映像
设置os=shp
如果结束
下一个
如果我是空的(os),那么
MsgBox“未找到图片”
其他的
'定义X和Y位置
x=操作系统单元(“PinX”)
y=操作系统单元(“Piny”)
'插入新图片
设置ns=ActivePage.Import(“c:\Users\subrogate\Desktop\ycnex.png”)
'将新形状放置到旧形状坐标
ns.单元(“pinx”)=x
N.细胞(“松果状”)=y
'删除旧形状
删除
如果结束

结束子部分
谢谢您提供的信息。如果不支持替换方法,我是否可以知道如何删除或删除我插入的早期图像,以便删除较新的图像,如shpNew.delete of VBA in c#?我始终每页删除一个图像