VS-Tipps & Tricks: Die Combobox im Property Fenster des Dialog Editors

Unscheinbar aber sehr effektiv zum Ändern von großen Dialogen ist die Combobox im Eigenschaftsfenster.
In den meisten Fällen steht in dieser Combobox nur der Name des Objektes, das ausgewählt ist und eine weitere Auswahl ist dann oft hier nicht möglich.

Editiert man jedoch einen Dialog, dann kann man mit dieser Combobox, sehr effektiv und schnell Controls gezielt auswählen. Besonders wenn man Controls übereinander legt weil diese ein oder ausgeblendet werden wird es schwierig diese Controls gezielt mit der Maus zu markieren.
Mit der Combobox kein Problem.
Die Reihenfolge in der Combobox ist die alphabetisch sortiert nach den Namen der Control IDs. Auch das erleichtert die Auswahl, wenn man ein Control direkt anhand seiner ID finden will. Hat man den Dialog nicht designed und will ein Control identifizieren, dass durch einen bestimmten Code gesteuert wird, ist das mit dieser Combobox ein Klax.

Auch wenn man die Maus nicht verwenden will kann man mit dieser Combobox schnell navigieren:
Alt+Eingabetaste, wählt das Eigenschaftsfenster, mit 3 x Tab oder 2 x Umschalt+Tab kommt man in die Combobox, die man dann mit den Cursor-Tasten, bzw. Alt+Pfeilrunter bedienen kann. Mit der Escape-Taste kommt man zurück in die Editoroberfläche.

VS Tipps & Tricks: Kontextmenü für Refactor Befehle in VA-X ab Build 1557

Die Refactoring Befehle in VA-X sind ja schon länger bekannt und sind wirklich ein prima Feature (Build 1534 seit 09.2006).

Nur war es manchmal etwas trickreich an diese Befehle zu kommen. Meistens habe ich die Maus verwendet und über dem Symbol platziert und gewartet, bis das entsprechende Dropdown Symbol aus VA-X erschien. Intuitiv und schnell war das nicht.

Seit dem Build 1557 (052007) finden sich die Refactoring Befehle direkt als erster Menüpunkt im normalen Kontextmenü und sind damit auch über die Tastatur direkt mit der Kontextmenütaste (oder Umschalt+F10) zu erreichen. Ein Grund mehr sich diese Funktionen wirklich mal anzusehen. Sie sind wirklich einen Tipp wert!
Meine Favoriten im Refactoring Menü sind immer wieder Find References und Rename.

Und für alle die meinen ich habe was vergessen oder übersehen: 😉

  • Es gab zwar seit dem Build 1540 einen entsprechenden Befehl den man einem Hotkey zuordnen konnte, aber allzu viele Hotkeys passen in meinen Kopf auch nicht rein.
  • Ja und man kam an diese Befehle auch über Umschalt+Kontextmenütaste erhalten. Nur ist das komplette VA-X Menü leider etwas unaufgeräumt und groß.

VS-Tipps & Tricks: Der Property Manager, der unbekannte Helfer.

Es gibt oft genug die Problematik, dass man eine bestimmte Environment Variable für ein Projekt setzen will, oder auch dass man für eine Gruppe von Projekten ein bestimmtes Include-Verzeichnis hinzufügen will oder bestimmte andere Projekteinstellungen benötigt.

Der bisherige Weg war meistens Handarbeit wenn es um die Projekteinstellungen ging. Bei Environment Variablen hatte man oft genug wenig Chancen.

Ein Weg ist es, einen Batch File zu schreiben, der die Environment Variablen setzt und dann die IDE mit DEVENV /useenv startet. In diesem Fall werden nur die entsprechenden Environment Variablen für LIB/INCLUDES etc. verwendet. Zusätzlich natürlich auch die eigenen spezifizierten.
Das hat aber den Nachteil, dass man nicht vergessen darf die IDE zu verlassen und neu zu starten hat, bevor man ein neues „normales“ Projekt bearbeiten will.
Summa summarum: Geht, ist aber kein guter Weg.

Es gibt eine weitaus effektivere Möglichkeit Projekteinstellungen einfach zu manipulieren und auch einfach für andere Projekte zu übernehmen: Der Property Manager!

Mit dem Property Manager kann man Projekteinstellungen erzeugen und zusammenfassen. Diese Projekteinstellungen lassen sich in einer XML Datei abspeichern (vsprops-Dateien) und auf andere Projekte auf einfache Art anwenden indem man nur die entsprechende Datei in das Projekt in den Projekteinstellungen einfügt.

Das nette ist, dass der Property Manager es auch erlaubt Environment Variablen zu setzen, die dann in den Optionen und auch den Custom-Build-Steps auf einfache Weise über $(MyUserMacro) nutzen lassen.

Und so geht man vor:

  • Über View -> Other Windows holt man sich den Property Manager auf den Bildschirm. Man kann nun sofort sehen welche aktuellen Properties gesetzt sind. (Zum Beispiel sieht man sofort woher zum Beispiel bei konvertierten Projekten das define _VC80_UPGRADE kommt)
  • Man findet zwei Schalter Add New Project Property Sheet um ein neuen Satz Properties anzulegen und Add Existing Property Sheet um ein bereits existierendes Property Sheet anzuwenden (dazu später).
  • Nun kann man einfach wie man es gewohnt ist, die gewünschten Eigenschaften in diesem Sheet einstellen, die man benötigt. Rechter Mausklick oder Doppelklick genügt und man erhält Zugriff auf alle Eigenschaften der Projekte. Ob es nun den Compiler oder Linker betrifft ist egal.
  • Wichtig ist gleich der zweite Eintrag User Macros. Hier kann man nun nach Lust und Laune Environment Variablen und andere defines setzen. Besonders interessant ist hier auch die Möglichkeit Werte anzuhängen an eine bestehende Environemt Variable. Nett für INCLUDE und LIB!

Zuletzt sei erwähnt, dass sich eine solche vsprops Datei auch einfach in ein bestehendes Projekt eingefügt werden kann. Das geht zum einen über den Property Manager mit dem schon erwähnten Schalter Add Existing Property Sheet , oder aber auch direkt über die Projekteinstellungen. Dazu einfach die Projekteigenschaften öffnen und den Abschnitt General auswählen. Dort findet man den Eintrag Inherited Projekt Property Sheets in dem man direkt die entsprechenden vsprops Dateien angeben kann.

❗ Man sollte aber auch daran denken, diese speziellen vsprops Dateien dem eigenen Source Control System hinzuzufügen und auch eine entsprechende Dokumentation dazu anzulegen.
Gut ist es auch ein zentrales Verzeichnis für diese Projekteinstellungen anzulegen um eine einfache Wiederverwendung zu ermöglichen.

VS-Tipps & Tricks: Schnelle Navigation über Strg+Tab

Wenn man mit dem, aus anderen MDI-Applikationen bekannten, Tasten Strg+Tab in andere Dokumente wechselt, dann wird auch ein Navigationsfenster angezeigt. Am Anfang wunderte mich, was das für ein Geflackere war, wenn ich wie gewohnt Strg+Tab und Umschalt+Strg+Tab verwendete. Bis ich entdeckte, dass man das geöffnete Navigationsfenster noch weitaus besser nutzen kann als nur als Navigationshilfe, wo man mit dem nächsten Strg+Tab landet.

Sofort nach Drücken der Tasten Strg+Tab, kann man bei gedrückter Strg-Taste in dem Navigationsfenster über die Cursor-Tasten jede beliebige offene Datei auswählen, ohne x-mal Strg+Tab zu drücken. Besonders nett ist, dass man auch die Pfeil-Rechts und Pfeil-Links Tasten nutzen kann.

Besonders interessant ist hier, dass man auch die Toolfenster, wie z.B. den Solution-Explorer, den Ressource-View, oder im Debugger den Call-Stack sofort erreichen kann (auch wenn es dazu direkte Hotkeys gibt).

VS-Tipps & Tricks: Das Menü mit der Liste der offenen Dateien anzeigen

Visual Studio 2005, zeigt nur einen Teil der offenen Dateien, in den Tabs über dem Editor.
Man sieht dort immer nur, die zuletzt verwendeten Dateien. In der Tabulatorleiste rechts außen findet sich ein Drop-Down-Schalter, mit dem man die Liste aller offenen Dateien anzeigen kann. Gerade wenn man mit vielen Dateien arbeitet ist man oft verzweifelt auf der Suche wo die eben noch offene Datei abgeblieben ist.

Dazu muss man aber nicht zu der ungeliebten Maus greifen, auch dafür gibt es einen netten und schnellen Hotkey:
Strg+Alt+Pfeil Unten, über einen Buchstaben, kann man auch in diesem Menü, schnell eine Datei auswählen.

VS-Tipps & Tricks: Tastatureinstellungen einfach auf einen anderen Rechner übernehmen

Unter dem Tools Menüpunkt verbirgt sich eine der schönsten Funktionen der Visual-Studio IDE: Import and Export Settings…

Wenn hat es nicht schon geärgert, wenn man kurze Zeit an einem anderen Rechner sitzt (ja man hat nicht immer Roaming Profiles) und man vermisst die so geliebten individuell eingestellten Shortcuts. Früher hieß dass irgendeinen mysteriösen Registry Ast zu sichern und zu importieren. Heute?

Kein Problem! Auf meinem USB-Stick befindet sich eine Datei Keyboard.vssettings. Mit dieser netten Datei stelle ich sofort meine Einstellungen wieder her. Wie?

Zuerst einmal ertsellen wir diese nette XML-Datei:

  • Dazu wählen wir Tools -> Import and Export Settings…
  • Wir wählen Export selected environment settings
  • Dann wählen wir alles ab indem wir in die Checkbox von All Settings klicken.
  • Jetzt wird in dem Baum unter All Settings -> Options -> Environment -> Keyboard die Checkbox angeklickt.
  • Die Datei speichert man unter einem sinnvollen Namen in C:\Dokumente und Einstellungen\UserName\Eigene Dateien\Visual Studio 2005\Settings

Für den Import geht man so vor:

  • Die Datei kopiert man am einfachsten in den Ordner C:\Dokumente und Einstellungen\UserName\Eigene Dateien\Visual Studio 2005\Settings auf der entsprechenden Maschine. (kann man sich auch sparen und die Datei auf dem Stick lassen)
  • Dann wählen wir Tools -> Import and Export Settings…
  • Wir wählen Import selected environment settings
  • Speichern der aktuellen Einstellungen wenn man will
  • Jetzt sieht man schon die Datei, wenn man Sie in den Ordner kopiert hat, oder man selektiert sie nun direkt vom USB-Stick.
  • Auswählen, was man importieren will. Hier sind natürlich nur die Keyboard settings zu sehen und schon selektiert.
  • Finish und wir haben unsere Einstellungen. Super!

BTW: Dieser Weg eignet sich auch ideal um festzustellen, was man eigentlich umdefiniert hat. Die XML-Datei enthält nur die Änderungen zum angewählten Profil. Damit kann man auch mal wieder auf die Suche gehen, was eigentlich von einem selbst stammt, oder eben Standard ist…