[英]Prevent termination of Word Application when user closes last document
我有一個簡單的Win Forms應用程序,該應用程序由Button
控件, OpenFileDialog
組件和Microsoft.Office.Interop.Word.Application
對象組成:
using System;
using System.Windows.Forms;
namespace WordInterop
{
public partial class Form1 : Form
{
// From Form1.Designer.cs:
//Button openButton;
//FileOpenDialog openFileDialog;
private Microsoft.Office.Interop.Word.Application _wordApp;
public Form1()
{
InitializeComponent();
_wordApp = new Microsoft.Office.Interop.Word.Application();
}
protected override void OnClosed(EventArgs e)
{
_wordApp.Quit();
base.OnClosed(e);
}
private void _openButton_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog.ShowDialog();
if (result == DialogResult.OK) {
// Throws COMException if Word app is not longer running
_wordApp.Documents.Open(openFileDialog.FileName);
_wordApp.Visible = true;
}
}
}
}
當用戶單擊“ Open
按鈕時,他們可以通過OpenFileDialog
選擇一個Word文檔。 所選文檔的文件名用於使用Microsoft.Office.Interop.Word.Application
對象打開Word文檔。
當用戶關閉最后一個文檔時,似乎Word應用程序終止了:如果用戶單擊“ Open
按鈕,選擇一個文檔,關閉該文檔,再單擊“ Open
按鈕,然后再次選擇一個文檔,則會出現COMException
消息RPC服務器不可用 。 如果打開了至少一個文檔,則用戶可以打開文檔而不會發生COMException
。
有沒有一種方法可以防止用戶關閉最后一個文檔時Word應用程序終止?
我嘗試通過將Form1
構造函數更改為以下內容來創建隱藏的空白文檔:
public Form1()
{
InitializeComponent();
_wordApp = new Microsoft.Office.Interop.Word.Application();
_wordApp.Documents.Add(Visible: false);
}
但是,當用戶打開文檔時,空白文檔變得可見,這意味着用戶仍然可以終止Word應用程序。
單擊按鈕上,創建一個Microsoft.Office.Interop.Word.Application()的新實例。
private void _openButton_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog.ShowDialog();
if (result == DialogResult.OK) {
_wordApp = new Microsoft.Office.Interop.Word.Application();
_wordApp.Documents.Open(openFileDialog.FileName);
_wordApp.Visible = true;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.