2009-05-01 14 views
5

Ich schreibe ein einfaches VS-Add-In und möchte programmgesteuert die Option "Dokumentformat" (unter Bearbeiten) im Code aufrufen. Google ist heute nicht sehr freundlich zu mir.Wie rufen Sie "Document Format" programmgesteuert von C# auf?

+0

Haben Sie Resharper probiert? Es kann die gesamte Lösung für Sie auf einmal umformatieren. (Ich nehme an, das hilft nicht, aber ich muss es versucht haben ... ;-)) – Rashack

+0

Nein, ich versuche nur mein eigenes kleines Werkzeug zum automatischen Schließen von Klammern zu drehen (ja, ich weiß, Resharper macht das auch, aber wo ist der Spaß daran? ??) – BFree

Antwort

5
Command cmd = _applicationObject.Commands.Item("Edit.FormatDocument", -1); 
object dummy = null; 
_applicationObject.Commands.Raise(cmd.Guid, cmd.ID, ref dummy, ref dummy); 
+0

Da es ein erstes Mal ist, es zu überprüfen, konnte ich nicht verstehen. Können Sie bitte den Typ des '_applicationObject' und seinen Namespace angeben. Ich habe ein wenig durchsucht, dass ich den EnvDTE80-Namespace verwenden sollte, aber ich konnte nicht fortfahren. Irgendein Codesnippet wird sehr hilfreich sein. –

5

Wenn Sie einen Verweis auf das Dokument (vom Typ Fenster) haben, und Sie haben einen Verweis auf das _DTE Objekt, Sie es so nennen kann:

myDocument.Activate(); 
myDTE.ExecuteCommand("Edit.FormatDocument", string.Empty); 

Die meiste Zeit, Sie können einen Verweis auf das _DTE-Objekt aus den Parametern abrufen, die an Ihr Add-In übergeben wurden.

+0

Gibt es eine Möglichkeit, Dokumente zu formatieren, ohne sie zu öffnen? Ich möchte alle Dokumente im Projekt mit einem Klick formatieren. – Hooch

+0

Ich glaube nicht. Sie können das Dokument öffnen, formatieren und anschließend schließen. –

Verwandte Themen