我正在做一个小程序来打开Excel电子表格,更新它然后将其保存到新文件然后关闭所有内容。
除了当我使用SaveFileDialog
时,弹出窗口隐藏在excel窗口后面,仅在第一次尝试时(在尝试之后,由按钮触发,所有工作都使用{{1})突然出现。)
有没有人知道我是如何在第一次出现时发生的?
我还想知道是否可以不突出显示文件名,以便用户可以附加到文件名而不是直接覆盖它,通常是错误的?
以下是我用于savefiledialog的代码......
SaveFileDialog
非常感谢,乔治
答案 0 :(得分:0)
IIRC你必须将OwnerWndProc设置为excel应用程序的主窗口。
答案 1 :(得分:0)
一个hacky但工作正常的解决方案:
saver.FileName = "test";
saver.DefaultExt = "xls";
saver.Filter = "Microsoft Office Excel Workbook |(*.xls*)";
saver.CheckFileExists = false;
saver.InitialDirectory = "c:\\George";
Form dummyForm = new System.Windows.Forms.Form();
if (saver.ShowDialog(dummyForm) == DialogResult.OK)
//MessageBox.Show("Save Dialog launched");
excelWorkbook.SaveAs(saver.FileName, Type.Missing, Type.Missing,Type.Missing,
Type.Missing, Type.Missing, XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing);
我所做的就是创建一个新的虚拟表单并将SaveFileDialogue抛给它。您可以尝试让所有者成为您的实际形式,但认为这是短期内最有可能解决您问题的方法。