HAUPPAUGE WinTV-PVR und Media Center Edition 2005: Fernbedienung

Visual Studio Makro für ein neues automatisches Property

Jan 13

Von:
13.01.2004  RssIcon

Der VisualStudio Dialog in der Klassenansicht, der ein neues Property anlegt, hält mich mehr auf, als den Vorgang zu beschleunigen.
Deshalb habe ich ein Makro geschrieben, welches automatisch ein neues Property anlegt.

Die folgende Sub kann als Makro eingefügt werden.

Für ein schnelles Ergebnis geht man wie folgt vor:
Über Menu Tools->Macros->Macros IDE die Makro IDE starten. Bei mir startet dann automatisch mein standard Makro-Module. Falls dies nicht der Fall sein sollte, wählt man aus der auf der linken Seite erscheinenden Liste ein Module aus, oder fügt ein neues hinzu. Danach die Sub von hier einfach hinein kopieren, fertig.
Zum Start des Makros kann man über den Makro Explorer (ALT+F8) auf das Makro klicken, welches dann sofort ausgeführt wird.
Möchte man einen Tastatur ShortCut hinzufügen, geht man wie folgend vor:
Im Menu Tools->Customize, dann Button Keyboard... klicken. Der Optionen Dialog erscheint mit der Vorauswahl auf Keyboard. Auf der rechten Seite des Dialogs hat man die Möglichkeit nach einem Befehl zu suchen. Es reicht hier die Eingabe von 'InsertProperty', und dieser erscheint als einziger Eintrag in der Liste.
Nun kann ein ShortCut hinzugefügt werden indem man die gewünschte Tastenkombination in dem Eingabe-Feld links neben dem Zuordnen Button eingibt.

 

    Sub InsertProperty()

        Dim ts As TextSelection = DTE.ActiveWindow.Selection

        Dim Type As String = InputBox("Enter the Typename: ")

 

        If Type.Trim.Length = 0 Then

            MsgBox("You must specify a type!")

            Exit Sub

        End If

 

        Dim ExternalName As String = InputBox("Enter the external (public) property name: ")

        If Type.Trim.Length = 0 Then

            MsgBox("You must specify an external name.")

            Exit Sub

        End If

 

        Dim InternalName As String = InputBox("Enter the internal (private) data name (leave blank for automatic name ): ")

        If InternalName.Trim().Length = 0 Then InternalName = "_" & ExternalName

 

 

        Dim vp As Integer = ts.AnchorPoint.AbsoluteCharOffset

 

 

 

 

        ts.NewLine()

        ts.Insert("/// " & ExternalName)

        ts.NewLine()

        ts.Insert("private " & Type & " " & InternalName & ";")

        ts.NewLine()

        ts.Insert("public " & Type & " " & ExternalName)

        ts.NewLine()

        ts.Insert("{")

        ts.NewLine()

        ts.Insert("get {")

        ts.NewLine()

        ts.Insert("return this." & InternalName & ";")

        ts.NewLine()

        ts.Insert("}")

        ts.NewLine()

        ts.Insert("set {")

        ts.NewLine()

        ts.Insert("this." & InternalName & " = value;")

        ts.NewLine()

        ts.Insert("}")

        ts.NewLine()

        ts.Insert("}")

 

 

        'ts.MoveToPoint(vp, True)

        ts.MoveToAbsoluteOffset(vp, True)

        ts.SmartFormat()

    End Sub

?>

Tags:
Categories:
Nutzungsbedingungen
(c) 2011 e-llusions