Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何隐藏Visio到RichTexbox的复制过程_C#_.net_Ms Office_Visio - Fatal编程技术网

C# 如何隐藏Visio到RichTexbox的复制过程

C# 如何隐藏Visio到RichTexbox的复制过程,c#,.net,ms-office,visio,C#,.net,Ms Office,Visio,全部。我创建了一个项目,通过复制Visio文档中的内容并将其作为图像粘贴到C#winform中的富文本框中,来显示该文档中的内容。问题是,当复制过程开始时,Visio会打开几秒钟,然后我的程序会复制内容。虽然我确实希望这样做,但我不希望Visio在此过程中可见。在隐藏Visio时,有没有办法使所做的事情成为共犯 代码如下: public partial class FrmVisio : Form { public FrmVisio() { InitializeCo

全部。我创建了一个项目,通过复制Visio文档中的内容并将其作为图像粘贴到C#winform中的富文本框中,来显示该文档中的内容。问题是,当复制过程开始时,Visio会打开几秒钟,然后我的程序会复制内容。虽然我确实希望这样做,但我不希望Visio在此过程中可见。在隐藏Visio时,有没有办法使所做的事情成为共犯

代码如下:

public partial class FrmVisio : Form
{
    public FrmVisio()
    {
        InitializeComponent();         
    }

    private void cboContent_SelectedIndexChanged(object sender, EventArgs e)
    {
    }

    private void FrmVisio_Load(object sender, EventArgs e)
    {
        cboContent.Items.Add("PFD-001_Control of Documented Information Process _(R4)");
        cboContent.Items.Add("PFD-002_Management_Review_Process_(R1)");
        cboContent.Items.Add("PFD-003 Control of Non-conformance Process Flow(R1)");
        cboContent.Items.Add("PFD-004_Internal Audit Process _(R1)");
        cboContent.Items.Add("PFD-008_Risk & Opportunity Process _(R1)");
        cboContent.Items.Add("PFD-010_Change_Control_Process_Flow_Diagram_(R1)");
        cboContent.Items.Add("PFD-011_Determine_Requirements_for_Products_Services_(R2)");
    }

    private void btnOpenWord_Click(object sender, EventArgs e)
    {
        if (cboContent.SelectedItem == null)
            MessageBox.Show("Please select a document", "No Document Selected", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        else
        {
            var item = cboContent.SelectedItem.ToString();

            MessageBox.Show("IMPORTANT! PLEASE READ: MS Visio allows you to create shapes and diagrams. However, those things, if edited, will not be saved on the " +
                "QMS unless you export the allocated document as a PDF in the same folder and overwrite the default PDF given. DO NOT CHANGE THE FILE NAMES OR THEIR LOCATIONS! Otherwise, the link to the documents and the QMS will be broken", "PLEASE READ!", MessageBoxButtons.OK, MessageBoxIcon.Warning);

            Process.Start(@"C:\Program Files (x86)\IMS Global\Quality Management System Application\QMS\QMS\QMS\" + item + @".vsd");   
        }
    }

    /// <summary>
    /// Show the preview of the Visio Document
    /// </summary>
    public void DisplayVsio()
    {
        //TODO: Find Better Alternative to Show Visio Documentation.
        //TODO: If not possible, edit widgets in windows form.
        if(cboContent.SelectedItem == null)
        {
            MessageBox.Show("Please select a document", "No Document Selected", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);               
        }
        else
        {
            var item = cboContent.SelectedItem.ToString();
            Visio.Application appObject = new Visio.Application();

            Microsoft.Office.Interop.Visio.Document doc = appObject.Documents.Open(@"C:\Program Files (x86)\IMS Global\Quality Management System Application\QMS\QMS\QMS\" + item + @".vsd");
            doc.Application.ActiveWindow.Selection.SelectAll();
            doc.Application.ActiveWindow.Selection.Copy();
            richTextBox1.Paste();

            appObject.Quit();
        }
    }

    private void btnShow_Click(object sender, EventArgs e)
    {
        richTextBox1.Clear();
        DisplayVsio();
    }
}
公共部分类FrmVisio:表单
{
公共FrmVisio()
{
初始化组件();
}
私有void cboContent\u SelectedIndexChanged(对象发送方,事件参数e)
{
}
私有void FrmVisio_加载(对象发送方,事件参数e)
{
CBO内容。项目。添加(“PFD-001文件化信息过程控制(R4)”;
CBO内容项目添加(“PFD-002管理、审查、流程(R1)”;
CBO内容项添加(“PFD-003不符合项流程控制(R1)”;
CBO内容项目添加(“PFD-004_内部审计流程(R1)”;
CBO内容项目。添加(“PFD-008_风险与机遇流程(R1)”;
CBO内容项目添加(“PFD-010变更控制流程流程图(R1)”;
CBO内容。项目。添加(“PFD-011确定产品和服务的要求(R2)”;
}
私有void btnOpenWord\u单击(对象发送者,事件参数e)
{
if(cboContent.SelectedItem==null)
MessageBox.Show(“请选择一个文档”,“未选择文档”,MessageBoxButtons.OK,MessageBoxIcon.惊叹号);
其他的
{
var item=cboContent.SelectedItem.ToString();
MessageBox.Show(“重要!请阅读:MS Visio允许您创建形状和图表。但是,如果编辑这些内容,将不会保存在”+
“QMS,除非您将分配的文档导出为同一文件夹中的PDF格式并覆盖给定的默认PDF。请勿更改文件名或其位置!否则,指向文档和QMS的链接将被断开”,“请阅读!”,MessageBoxButtons.OK,MessageBoxIcon.Warning);
流程启动(@“C:\Program Files(x86)\IMS Global\Quality Management System Application\QMS\QMS\QMS\“+item+@”.vsd”);
}
}
/// 
///显示Visio文档的预览
/// 
公共void DisplayVsio()
{
//TODO:找到更好的替代方案来显示Visio文档。
//TODO:如果不可能,请在windows窗体中编辑小部件。
if(cboContent.SelectedItem==null)
{
MessageBox.Show(“请选择一个文档”,“未选择文档”,MessageBoxButtons.OK,MessageBoxIcon.惊叹号);
}
其他的
{
var item=cboContent.SelectedItem.ToString();
Visio.Application appObject=新建Visio.Application();
Microsoft.Office.Interop.Visio.Document doc=appObject.Documents.Open(@“C:\Program Files(x86)\IMS Global\Quality Management System Application\QMS\QMS\QMS\”+item+@.vsd”);
doc.Application.ActiveWindow.Selection.SelectAll();
doc.Application.ActiveWindow.Selection.Copy();
richTextBox1.Paste();
appObject.Quit();
}
}
私有void b显示\单击(对象发送者,事件参数e)
{
richTextBox1.Clear();
DisplayVsio();
}
}
更改:

Visio.Application appObject=新建Visio.Application()

致:

Visio.Application appObject=新建Visio.InvisibleApp()