Visio二次开发---第三篇打开Visio文件

接上一篇,在加载完加载axDrawingControl1控件之后,我尝试着去打开一个Visio图纸,Visio图纸的打开和一般文件的打开有些不同,它是通过DrawingControl.Src 属性来打开Visio图纸的,Visio的帮助文档中这么解释:当 Visio Drawing Control 试图打开您在 Src 属性中指定的文件时,它的行为与 Visio 试图打开文件时的行为大致相同;它首先搜索在DrawingPaths 属性字符串中列出的所有路径。如果要打开的文件的路径在该字符串中列出,您可以只指定文件名。如果没有列出,则必须指定一个完全限定路径和文件名。

打开文件的方法有很多种,以下是我根据一些资料整理出来的一些代码,仅供参考:

 private void tsmiOpenPicDoc_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "Visio文件(*.vsd)|*.vsd|所有文件(*.*)|*.*";//打开文件格式
            ofd.FilterIndex = 1;//文件格式索引
            ofd.RestoreDirectory = true;//对话框关闭前是否还原当前目录
            ofd.CheckFileExists = true;//检查文件是否存在
            ofd.CheckPathExists = true;//检查路径是否存在

            //如果文件打开成功则读取文件并且在axDrawingControl中展示
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                Console.WriteLine(ofd.FileName);
                this.axDrawingControl.Src = ofd.FileName;
                // this.VisWindow.WindowState = FormWindowState .Maximized ;
                SetInitWindow();
                this.WindowState = FormWindowState.Maximized;
            }
        }

打开模具的方法与之类似,不过模具是在已存在的Visio图纸上打开的,也就是在Documents中打开。通过axDrawingControl.Document.Application的 Documents属性来调用Open方法来打开模具。

 private void tsmiOpenStencil_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            ofd.Filter = "Visio模具文件(*.vss)|*.vss|所有文件(*.*)|*.*";//打开文件格式
            ofd.FilterIndex = 1;//文件格式索引
            ofd.RestoreDirectory = true;//对话框关闭前是否还原当前目录
            ofd.CheckFileExists = true;//检查文件是否存在
            ofd.CheckPathExists = true;//检查路径是否存在

            //如果文件打开成功则读取文件并且在axDrawingControl中展示
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                Console.WriteLine(ofd.FileName);
                //this.axDrawingControl.Src = ofd.FileName;
                VisApplication.Documents.Open(ofd.FileName);
            }
        }

学习新的东西,总会遇上很多问题,我们要 多一些耐心去思考探究问题的根源,努力去解决问题,而不是躲避!


猜你喜欢

转载自blog.csdn.net/qq_39449229/article/details/79007807