Полезные акселераторы Visual Studio

30 мар. 2010 г. | | |

F12 - переходит к объявлению класса, метода, переменной и т.д.
Shift-F12 - найти все ссылки
F2 - рефакторинг "Rename method"
Ctrl-R, Ctrl-M - рефакторинг : извлекает выделенный фрагмент кода в отдельный метод
Ctrl-K, Ctrl-C - комментирует выделенный фрагмент кода
Ctrl-K, Ctrl-U - раскомментировать выделенный закомментированный фрагмент кода
Ctrl-E, Ctrl-D - форматирование кода. Например, при вставке кода с синтаксическими ошибками студия не сможет нормально отформатировать вставленный кусок. После устранения ошибок Ctrl-E, Ctrl-D позволяет автоматически расставить все отступы, пробелы и переводы строк согласно текущим настройкам по форматированию кода (Tools->Options->Text Editor->C#->Formatting).
Ctrl+] - перемещение между скобками, комментариями и другими парными элементами ({}, (), /**/, #region/#endregion, ...). Например, если курсор находится на открывающейся скобке, то Ctrl+] переместит его на соответствующую ей закрывающуюся, и наоборот.
Ctrl+C - копирует выделенный текст :), при отсутствии выделения копирует в буфер обмена текущую строку.
Ctrl+L - удаление текущей строки
Ctrl-M, Ctrl-M - сворачивает/разворачивает регион кода, в котором находится курсор (это может быть метод, namespace, комментарий и т.п.)
Ctrl-M, Ctrl-O - Collapse to Definitions
Ctrl-Shift+Space - вызывает intellisense suggestions window на текущем элементе

Создаем ярлык (Shortcut) приложения на рабочем столе, в пуске на C#

15 мар. 2010 г. | | |

Создать ярлык приложения очень просто. Для этого нам понадобится библиотека Interop.IWshRuntimeLibrary, которую нужно подключить в референсы проекта (в SolutionExplorer выбираем нужный проект, правой кнопкой по References->Add Reference, во вкладке COM находим "Windows Script Host Object Model" и клацаем ОК):

И так, подготовительный этап пройден.
Добавим в проект класс, который будет заниматься созданием ярлыков. У меня он именуется ShortcutManager. Состоять он будет из одного статического метода CreateShortcut:

public class ShortcutManager
{
public static void CreateShortcut(string linkName, string apppath, string iconpath, ShortcutLocation location, string hotkey)
{
object shortPath = null;
// Определяем место, где будет создан ярлык
switch (location)
{
case ShortcutLocation.DESKTOP:
{
shortPath = (object)"Desktop";
}; break;
case ShortcutLocation.START_MENU:
{
shortPath = (object)"StartMenu";
}; break;
case ShortcutLocation.COMMON_DESKTOP:
{
shortPath = (object)"AllUsersDesktop";
}; break;
default: shortPath = (object)"Desktop"; break;
}

WshShell shell = new WshShell();
// Получаем полный адрес ярлыка
string link = Path.Combine(((string)shell.SpecialFolders.Item(ref shortPath)), linkName + @".lnk");
// Создаем объект ярлыка
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(link);
if (!hotkey.Equals(String.Empty))
{
// Назначаем горячую клавишу
shortcut.Hotkey = hotkey;
}
// Описание ярлыка
shortcut.Description = linkName;

shortcut.IconLocation = iconpath;
//Указываем рабочую папку
shortcut.WorkingDirectory = Path.GetDirectoryName(apppath);
// Указываем путь для программы
shortcut.TargetPath = apppath;
// Вызываем метод Save(), который и создаст ярлык
shortcut.Save();
}
}

ShortcutLocation - это Enum, содержащий возможные варианты размещения ярлыка:

public enum ShortcutLocation
{
DESKTOP,
COMMON_DESKTOP,
START_MENU
}

Для примера ярлык может быть создан на рабочем столе текущего пользователя, на общем рабочем столе и в пуск->программы.
В качестве входных аргументов CreateShortcut должен получить название ярлыка (linkName), полный путь к приложению, для которого создается ярлык (apppath), полный путь к иконке, которая будет установлена на ярлык (iconpath), размещение ярлыка (location), горячая клавиша (сочетание клавиш hotkey).
Пример использования CreateShortcut:

Shortcut.ShortcutManager.CreateShortcut("Sample Shortcut", Application.ExecutablePath, Application.ExecutablePath, ShortcutLocation.DESKTOP, String.Empty);

Полный код примера можно скачать тут.