我已经看过但未能找到解决我的问题的方法。我为 Word 2007 开发了一个插件功能区,它提供了一组额外的加载和保存功能,允许用户从定制系统加载和保存文档。
我的大部分工作都在工作——当用户请求打开一个文件时,它会被下载并保存到 AppData 文件夹中,然后再打开。但是,我遇到的问题是,例如,如果用户打开 Word 并使用这个新的“加载”功能,空白的 Word 文档仍然存在,Word 很高兴地打开了新文档,但它没有获得焦点。
(我在 Windows 7 上,它在新文档的任务栏中创建了第二个“W”图标,但它不会像我使用普通的“打开”时那样切换到它路线。)
我已经尝试过(由于在此处其他地方找到的建议)将“可见”属性设置为 true,然后调用,doc.Activate()
但我也不需要。我错过了什么?我用来打开文件的代码如下:
private void OK_Click(object sender, EventArgs e)
{
this.Close();
FES.FESServices wService = new FES.FESServices();
int request_id = wService.SubmitRequestFromAddIn(username, password, "RETR", "", textBox1.Text, "", "");
FES.FileRequestResponse response = wService.GetFileMembersFromAddIn(username, password, request_id);
if (response.ResponseType == "RETR")
{
byte[] data = wService.GetBytesForFilename(response.ResponseValue);
//MessageBox.Show("Loaded data for file...");
//MessageBox.Show(Application.UserAppDataPath);
FileStream fs = new FileStream(Application.UserAppDataPath + "\\" + response.ResponseValue.Substring(6).Split('~')[0], FileMode.Create, FileAccess.Write);
fs.Write(data, 0, (int)data.Length);
fs.Close();
object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.Document doc = Globals.ThisAddIn.Application.Documents.Open(
Application.UserAppDataPath + "\\" + response.ResponseValue.Substring(6).Split('~')[0], Visible:true
);
doc.Activate();
}
}
(我已经将this.Close()
加载文档的功能包含在一个模式对话框中,并且在没有先关闭它的情况下,Word 会抛出一个关于在打开对话框的情况下切换文档的异常)。
任何帮助都感激不尽!