none
Problem mit ShowSaveAsDialog RRS feed

  • Frage

  • Hallo,

    ich möchte dass wenn der User auf Save (e.g. die Diskette im Menü) klickt der save as dialog erscheint. Dies sollte doch eigentlich mit folgendem Code möglich sein:

            private void InternalStartup()
            {
                this.Startup += new System.EventHandler(ThisDocument_Startup);
                this.Shutdown += new System.EventHandler(ThisDocument_Shutdown);
                this.BeforeSave += new Microsoft.Office.Tools.Word.SaveEventHandler(ThisDocument_BeforeSave);
            }

            void ThisDocument_BeforeSave(object sender, Microsoft.Office.Tools.Word.SaveEventArgs e)
            {
                e.ShowSaveAsDialog = true;
            }

    Leider erscheint der save as dialog trotdem nicht.

    (Doku zum Parameter: http://msdn.microsoft.com/de-de/library/microsoft.office.tools.word.saveeventargs.showsaveasdialog(VS.80).aspx)

    Ich arbeite auf Dokumentenebene mit Word2003 in VisualStudio2008 Professional und möchte dass der User das Template nicht direkt überschreibt sondern der Saveas dialog kommt. Gibt es hierfür vielleicht eine andere Möglichkeit? Eine weitere Idee wäre über e.close = true und danach den normalen saveas dialog aufrufen, aber wie kann ich den saveas dialog aufrufen?

    Danke, Metapsychologe

    Donnerstag, 22. Juli 2010 13:39

Antworten

  • Danke für die Antwort, aber ich glaube ich habe eine für mich bessere Lösung gefunden:

    void ThisDocument_BeforeSave(object sender, Microsoft.Office.Tools.Word.SaveEventArgs e)
    {
       if (e.ShowSaveAsDialog == false)
       {
           object missing = null;
            this.Application.Dialogs[Microsoft.Office.Interop.Word.WdWordDialog.wdDialogFileSaveAs].Show(ref missing);
            e.Cancel = true;
        }
    }

    Freitag, 23. Juli 2010 08:15

Alle Antworten

  • Hallo,

    Hallo,

    ich möchte dass wenn der User auf Save (e.g. die Diskette im Menü) klickt der save as dialog erscheint. Dies sollte doch eigentlich mit folgendem Code möglich sein:

            private void InternalStartup()
            {
                this.Startup += new System.EventHandler(ThisDocument_Startup);
                this.Shutdown += new System.EventHandler(ThisDocument_Shutdown);
                this.BeforeSave += new Microsoft.Office.Tools.Word.SaveEventHandler(ThisDocument_BeforeSave);
            }

            void ThisDocument_BeforeSave(object sender, Microsoft.Office.Tools.Word.SaveEventArgs e)
            {
                e.ShowSaveAsDialog = true;
            }

    Leider erscheint der save as dialog trotdem nicht.

    Es scheint, als würde dieses Argument nicht ausgewertet, sondern nur Information darüber liefern, ob der Save As Dialog angezeigt werden sollte.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Donnerstag, 22. Juli 2010 21:32
  • Danke für die Antwort, aber ich glaube ich habe eine für mich bessere Lösung gefunden:

    void ThisDocument_BeforeSave(object sender, Microsoft.Office.Tools.Word.SaveEventArgs e)
    {
       if (e.ShowSaveAsDialog == false)
       {
           object missing = null;
            this.Application.Dialogs[Microsoft.Office.Interop.Word.WdWordDialog.wdDialogFileSaveAs].Show(ref missing);
            e.Cancel = true;
        }
    }

    Freitag, 23. Juli 2010 08:15