最近在做WORD插件的开发,想用到WORD里自带的ACTIVEX的Forms.Image.1控件。 在给其赋值的时候遇到的困难     网上的资料是基本都是VB的,好像可以直接用LoadPicture(filename)方法直接赋值,但在C#里没有这种方法可以直接
调用。想起各个大大指点一下这个Picture属性怎么赋值 也就是右边怎么填写呢?
    object picobj = WordDoc.Application.ActiveDocument.Shapes.AddOLEControl(ref objOleControlType, ref Left, ref Top, ref Width, ref Hight, ref Anchor).OLEFormat.Object;   //获得对象  @这句怎么写@  ((Microsoft.Vbe.Interop.Forms.ImageClass)picobj).Picture =     PS:ImageClass是picobj对象的类型,经查为Stdole.stdPicture 这样子的     有没有曾经用C#给控件Picture赋过值的朋友来帮下忙  好像ICommandButton控件的Picture属性也是这样个赋值法。

解决方案 »

  1.   

         我发现有这个东西有疑问的朋友还蛮多,翻了下原来的帖子 基本是只见提问不见回答      (http://topic.csdn.net/t/20040324/14/2880290.html)     给这种类型的PICTURE赋个值怎么这么麻烦呢? 原来做出来过的朋友出来帮下忙啊~
      

  2.   

    activex没用过,但是在c#里赋值用过
    pictureBox1.Image = new Bitmap("文件名");
      

  3.   

        是呀,在窗体应用程序里给控件赋值很轻松的一句话,为啥在ACTIVEX里就要死去活来 = =!
      

  4.   

        在纠结了两天之后终于在老外的指点下找到了坑爹的解决办法,不敢独享。发出来希望能给以后朋友一点帮助。((Microsoft.Vbe.Interop.Forms.ImageClass)picobj).Picture = (stdole.StdPicture)ImageConverter2.ImageToIpicture(bitmap);其中 Bitmap bitmap = new Bitmap( "D:\\**.bmp"); public class ImageConverter2 : System.Windows.Forms.AxHost
            {
                public ImageConverter2()
                    : base("59EE46BA-677D-4d20-BF10-8D8067CB8B33")
                {
                }            public static stdole.IPictureDisp ImageToIpicture(System.Drawing.Image image)
                {
                    return (stdole.IPictureDisp)ImageConverter2.GetIPictureDispFromPicture(image);
                }            public static System.Drawing.Image IPictureToImage(stdole.StdPicture picture)
                {
                    return ImageConverter2.GetPictureFromIPicture(picture);
                }
            } 
     
        现在就是怎么玩这个image控件了,我觉得有必要的话还是最好自己用C++写个控件这样的话很多东西都能学到 。不过那是后话了~