2008г.
Количество страниц:544
Книга представляет собой сборник советов, алгоритмов и готовых примеров программ на языке С# в среде MS Visual Studio 2005/2008 из различных областей: работа с формами и элементами управления, папками и файлами, мышью и клавиатурой, мультимедиа и графикой, использование технологий WM1 и WSH, взаимодействие с MS Office и другими приложениями, работа в локальной сети и Интернете, особенности использования функций Windows API и др.
На компакт-диске размещены примеры из книги, а также демонстрационная версия справочника по функциям Windows API для .NET Framewoflf и сообщениям Windows для Visual Basic .NET и C#.
Вступление
Для кого предназначена книга,
Требования
Чего вы не найдете в этой книге
Исходные коды
Обратная связь
Глава 1. Общее
Часто задаваемые вопросы
Можно ли запустить программу, написанную на С#, без .NET Framework?...
В каком редакторе писать программы?
Исцюдьзование в качестве переменных русских символов
Псевдонимы
Копирующий строковой литерал
Символ @ перед идентификатором
Как узнать, присвоено ли переменной значение
Как это назвать?1
Какая разница между string и System.String1
Выберите свои правила наименования1
Правила для названий классов и методов1
Советы по созданию эффективных и масштабируемых приложений1
Сопряжение1
Наследование1
Минимизация кода1
Экономия ресурсов1
Создание автоматически обновляемых приложений1
Заключение1
Глава 2. Строки, даты, числа
Строки
Простейшие операции со строками1
Входит ли строка в другую строку?
Преобразование строки в число
Вставка специального символаСоздание строки из повторяющихся символов
Метод String.Format
Преобразование строки в объект Color
Проверка строки на пустоту
Переворачиваем строку
Сжатие длинных имен файлов
Печатающийся текст
Бегущая строка
Как соединять строкиЧто лучше: Parse или TryParse?
Сравнение и сортировка строк
Даты
Как получить текущую дату
Дата и время в разных форматах
Как использовать дату и время в приложении
Сложить и вычесть временной интервал из дат
Вычисление разницы между датами
Как определить, является ли год високосным?
Вычисление даты католической ПасхиЛМ
Числа
Преобразование числа в шестнадцатеричную систему счисления
Как перевести число в двоичную систему счисления?
Как перевести число в восьмеричное или шестнадцатеричное
представление?
Является ли выражение числом?
Создание собственной функции IsNumeric на С#
Создание уникального идентификатора
Перечисления
Как получить все элементы перечисления
ЗаключениеГлава 3. Алгоритмы
Найти наименьшее и наибольшее значение из трех чисел
Массив строк
Преобразование градусов в радианы и радианов в градусы
Четное или нечетное число
Получить старшее и младшее слова из числа
Преобразование градусов по Фаренгейту в градусы по Цельсию
Генерирование случайного цвета
Подсчет суммы всех целых чисел диапазона
Нахождение простых чисел
Вывод программой своего исходного кода
Заключение
Глава 4. Интегрированная среда разработки (IDE)
Удобные клавиатурные команды
Получение списка всех назначенные клавиш
Настройка назначенных клавиш
Показ назначенных клавиш во всплывающих подсказках
Селектор оконных конфигурацийФрагменты кода (code snippets)
Создание XML-файла
Встроенные фрагменты кода
Распространение собственных фрагментов
Настройка стартовой страницы Visual Studio
Настройки для групповой работы
Создание файла параметров
Размещение файла параметров в пути UNC
Параметр /resetuserdata
Ряд мелких советов
Как показывать нумерацию строк в редакторе кода?
Как изменить цвет для регионов кода?
Вертикальное выделение текста
Альтернативный метод поиска строк
Множественное копирование в буфер обмена
Как управлять фрагментами кода в Visual Studio 2008?
Быстрое комментирование и раскомментирование фрагментов кода
Отображение IntelliSense
Прозрачная подсказка IntelliSense
Перемещение от открывающей скобки к закрывающей скобке
Сворачивание/разворачивание блока (региона, функции, цикла и т. п.).
Анимация при автоматическом скрытии панелей
Вариант загрузки справочной системы
Путь к файлу
Быстрый переход к папке, содержащей исходные коды проект
Изменение шаблона заготовки метода в С#, генерируемого автоматически
Вспомнить название пространства имен
Удобный способ вызвать Smart Tag
Создание собственных шаблонов приложений
Работа в полноэкранном режиме
Быстрый поиск в списках
Поле Find
Окно Command
Диалоговое окно Find and Replace
Еще о настройках
Сокрытие статусной строки
Число показываемых последних файлов
Многодокументный интерфейс
Управление панелями Auto Hide и Close
Меню Window
Переключение между окнами
Помоги себе и команде Visual Studio, или пишем логи
Графические файлы для проектов
Надстройки
Надстройки сторонних разработчиков
GhostDoc
SmartPaster
PInvoke.NET
Paste as Visual Basic
Заключение
Глава 5. Экран и формы
Экран
Как определить разрешение экрана
Как определить рабочую область экрана без панели задач?
Как изменить разрешение экрана программным путем
Формы
Как вывести форму в центре экрана?
Как задать позицию формы на экране?
Как программно свернуть или развернуть форму?
Поддержка тем рабочего стола Windows
Как узнать, используются ли темы Windows ХР?Как отобразить форму без передачи ей фокуса?
Как не отображать форму при запуске программы?
Как сделать так, чтобы форма отбрасывала тень?
Как вывести запрос при закрытии формы?
Выбираем варианты закрытия формы
Сокрытие значка формы на панели задач и при нажатии комбинации клавиш +
Как отловить момент сворачивания или разворачивания формы?
Как запретить пользователю перемещать форму по экрану?
Как перемещать форму, не имеющую заголовка?.
Еще два способа буксировки формы, не имеющей заголовка
Как добиться эффекта полупрозрачности у формы
Перемещение формы за заголовок
Неактивная форма
Как создать формы без границ и заголовка?
Как убрать кнопку Хиз заголовка формы?
Убрать кнопку X при помощи управляемого кода
Создать окно произвольной формы
Создание дырявой формы
Как создать форму в виде текста?
Смена темы Windows ХР
К$к5форме получать уведомления о нажатии кнопок, когда фокус ввода находится в каком-либо элементе управления формы?
Как получить список всех открытых форм, принадлежащих приложению?
Сохранение настроек формы
Создание и использование параметров командной строки
Установить фоновый цвет в родительской MDI-форме
Запрет на запуск второй копии приложения
Как передавать значения между формами Windows Forms
Способ первый
Второй способ
Заключение
Глава 6. Элементы управления
Общие советы
Как добавить элемент управления на форму во время выполнения программы?
Как пройтись по всем элементам управления на форме?
Как изменить цвет границы (Border) у элемента управления?
Окантовка вокруг элемента управления
Как программно перевести фокус на следующий/предыдущий (в порядке TAB) элемент управления?
Как изменить Z-порядок элемента управления?
Как узнать размеры строки в пикселах, отображаемой в каком-нибудь элементе управления?
Как сделать элемент управления произвольной формы?
Кнопки (Button)
Как установить кнопку по умолчанию для формы?
Как установить кнопку отмены (Cancel) для формы?
Как программно вызвать событие Click у кнопки?
Как создать западающую кнопку?
Список (ListBox)
Автоматическая прокрутка списка
Подгоняем ширину списка под самый длинный текст
Как заполнить список именами файлов, перетаскиваемых из Проводника?
Разделить список цветными линиями и заполнить цветным текстом
Поле со списком (ComboBox)
Подгоняем ширину поля со списком под самый длинный текст
Поддержка автозавершения
Как раскрыть поле со списком программным способом?
Как запретить раскрытие списка?
Как изменить высоту элементов списка у элемента управления
ComboBox?
Как установить желаемую высоту выпадающего списка у ComboBox?
Как использовать ComboBox для редактирования данных в ListView
Текстовые поля (TextBox)
Подсчет числа строк в многострочном текстовом поле
Фильтрация заданных символов при вводе с клавиатуры
Как заблокировать контекстное меню в текстовом поле?
Запрет вставки текста из буфера обмена Windows
Как ввести многострочный текст в текстовое поле программно?
Как сделать так, чтобы символы вводились в нужном регистре?
Как избавиться от звукового сигнала при нажатии на клавишу ввода?
Как выделить текст программным способом?
Как определить наличие полос прокрутки в элементе RichTextBox?
Как запретить вставку
Элемент управления MaskedTextBox
Элемент DateTimePicker
Как показать пустой текст, если в DateTimePicker не выбрана дата?
Как программно раскрыть DateTimePicker?
Элементы Label и Panel
Полупрозрачная надписьИспользование Label в виде разделительной линии как элемент дизайна
Элемент LinkLabel
Отображение лишь части текста в виде ссылки
Несколько ссылок в одном LinkLabel
Notifylcon — значок в области уведомлений
Как создать мигающий значок в области уведомлений?
Как создать анимированный значок в области уведомлений?
Свертывание формы вместо закрытия приложения
Элемент ListView
Как убрать'*выделение элемента в ListView программно?
Как программно выбрать элемент bTistView?
Как сортировать элемент управления ListView по колонкам
Изменение цвета подэлементов ListView программным путем
Элемент управления ToolTip
Почему пользователь не видит подсказки в стиле Balloon?
Многострочная подсказка
Меню
Фон для меню
Как добавить контекстное меню элементу управления?
Как определить, какой элемент вызвал контекстное меню?
Автоматическое закрытие контекстного меню через заданный промежуток времени
Дерево (TreeView)
Как показать подсказку над узлом TreeView?
Вкладки (TabControl)
Программное переключение на другую вкладку
Установка фокуса на элементе управления на вкладке во время загрузки формы
Как вывести ярлычки внизу вкладки TabControl?
Добавление новой вкладки
Удаление вкладки
Как вставить вкладку в определенную позицию?
Элемент PerformanceCounter
Как создать счетчик производительности процессора?
StatusBar и StatusStrip
Как изменить шрифт и фон для StatusBar
Элементы Flow Lay outPanel и TableLayoutPanel
Элемент DataGrid
Элемент DataGridView
Создание собственных элементов управления
Как скрыть свойство или метод от IntelliSense в редакторе кода?
Как скрыть свойства и события из редактора свойств ProperlyGrid при создании собственного элемента управления?
Как запретить изменять размер элемента управления во время разработки?
Как во время разработки позволить выбирать значение свойства из нескольких предопределенных в поле со списком?
Как добиться того, чтобы свойство моего элемента управления было видно в разделе DataBindings окна свойств?
Как сделать свой элемент управления, выступающий в роли контейнера для других элементов управления во время разработки?
Как присвоить свой значок для собственного элемента управления в панели инструментов?
Создание собственного элемента управления SmoothProgressBar
Создание элемента SmoothProgressBar
Создание клиентской программы для тестирования
Заключение
Глава 7. Графика
Преобразование цвета в HTML-формат
Как преобразовать цвет в целое число?
Как получить доступ к определенному пикселу изображения?
Как нарисовать прямоугольник с закругленными краями?
Установка фонового изображения
Как сделать снимок экрана?
Сохранить изображение элемента управления или формы
Как получить прокручиваемый рисунок?
Получение негатива изображения
Сделать изображение серым
Как создать затемненную картинку
Эффект недоступной кнопки
Как нарисовать вдавленный и выпуклый текст?
Как получить контурный текст
Как отразить текст в зеркальном отражении?
Как повернуть текст под некоторым углом?
Вот новый поворот (из песни группы "Машина времени")
Бегущая градиентная строка
Скроллинг текста
Анимированные картинки
Как сохранить изображение из буфера обмена в файл
Шрифты и печатьZ.
Получение списка установленных шрифтовИспользование собственных шрифтов
Получение списка установленных принтеров
Как распечатать документ?
Как показать окно предварительного просмотра перед печатью
Заключение
Глава 8. Работа с мышью и клавиатурой
Мышь
Как скрыть и показать указатель мыши?
Как установить позицию указателя мыши?
Анимированные курсоры
Мышеловка
Право выбора
Меняем кнопки мыши местами
Как узнать координаты мыши?
Как преобразовать экранные координаты в клиентские (для данного
элемента)и наоборот?
Как двигать указателем мыши программно?
Как выполнить эмуляцию щелчков мыши?
Рисование
Работа с клавиатурой
Как переключать раскладки клавиатуры?
Как получить текущий язык ввода?
Как послать нажатия клавиш программно?
Как включать и выключать индикаторы клавиш ,
и
Как определить состояние клавиш-индикаторов?
Последнее нажатие на клавишу или на кнопку мыши
Заключение
Глава 9. приложения
Работа с процессами
Как получить полное имя файла запущенного приложения?
Как получить путь к папке, из которой запущено приложение?
Как запустить другой исполняемый файл из своего приложения?
Как закрыть все копии Блокнота?
Запуск программы по имени файла
Как узнать число процессоров в системе?
Как приостановить выполнение программы на несколько секунд?
Как получить список всех процессов, запущенных в системе?
Как получить список только оконных процессов на моей машине?
Как получить список определенных процессов?
Получение списка процессов на удаленной машине
Как открыть почтовый клиент, установленный по умолчанию, и установить необходимые параметры для отправки письма?
Определение операционной системы пользователя
Определение версии .NET Framework и ее сервис-пака
Определение папки установки .NET Framework
Номер сборки
Обновление номера версии сборки в автоматическом режиме
Вызов файла справки СНМ
Получение номера версии файла и другую информацию
Определение имени пользователя системы
Как определить, имеет ли ваша система мышь, узнать число кнопок у мыши, размер вашего монитора и другую информацию?
Как зарегистрировать файлы DLL и OCX?
Извлечение строки или значка из ресурсов
Сохранение настроек приложения
Работа с реестром
Глава 10. диски, папки и файлы
Диски»
Как получить список логических дисков?
Как узнать тип диска и его свойства?
Папки
Как получим список папок?
Как проверить существование папки?
Как переименовать папку?
Как удалять папки?
Как выбрать папку?
Как получить путь для папки Мои документы и других специальных папок Windows?
Свойства папки
Размеры папки
Как написать свой Проводник?
Как получить список файлов в папке?
Как получить список папок и файлов?
Как получить список файлов по маске?
Как узнать, существует ли файл?
Как получить имя файла из полного пути файла?
Как получить расширение файла из полного пути?
Как создать, удалить, переместить файл?
Как установить атрибуты у файла?
Как ограничить доступ к файлу?
Как работать с бинарными файлами?
Как работать с текстовыми файлами?
Как добавить текст'в существующий файл?
Построчное чтение текстового файла
Загрузить текстовый файл в список?
Как получить короткое имя файла из длинного файла и наоборот?
Как удалить файл в Корзину
Как записать и прочитать текст в различных кодировках?
Как прочитать XML-файлы?
Сравнение двух файлов
Отслеживание изменений в файловой системе
Как установить уровень доступа к файлу?
Заключение
Глава 11. Библиотека WSH
Создание ярлыкаПолучение списка установленных в системе принтеров
Установка принтера по умолчанию
Получение списка сетевых дисков
Заключение
Глава 12. WMI
Использование WMI на удаленной машине
Информация об операционной системе
Информация о компьютере
Информация о производителе
Получение информации о процессорах
Информация о свойствах видеоконтроллера
Получение свойств приводов компакт-дисков
Информация о параметрах загрузки Windows
Информация о сетевом адаптере
Информация о мониторе
Материнская плата
Вывод списка общих ресурсов
Информация о логических дисках
Перезагрузка компьютера
Дополнительный пример
Заключение
Глава 13. Мультимедиа
Звуковые сигналы
Функция Windows API Веер
Функция Windows API MessageBeep
Функция Веер для Visual Basic
Звуковые файлы
И снова о Веер
Как проигрывать звуки разных форматов?
Воспроизведение MIDI и МРЗ через неуправляемый код
Извлечение информации из файлов^МРЗ
Взаимодействие с Winamp
Заключение
Глава 14. Разработка локализованных приложений
Общая информация о локализации
Локализующие идентификаторы
Культура
Приложение Qalture Explorer
Разработка многоязычного приложения
Разделяй и властвуй
Сопутствующие сборки
Заключение
Глава 15. Microsoft Office
Excel
Раннее связывание
Автоматизация Excel или как работать массивами
Позднее связывание
Outlook
Как получить сообщения из папки Входящие?
Получение уведомлений о новых письмах
VST
Глава 16. Локальная сеть и Интернет
Информация о сети
Как получить хост, порт, протокол из веб-адреса?
Как получить IP-адрес компьютера, используя DNS?
Получение оглавления папки
Загрузка файлов
Отправка писем через SMTP
Использование браузера Mozilla Firefox
Работа с локальной сетью
Как получить имя текущего пользователя?
Как выяснить, подключена ли локальная система к сети, и узнать используемый тип соединения?
Получение списка всех компьютеров локальной сети
Список SQL-серверов при помощи управляемого кода
Как получить дату и время удаленного компьютера?
Заключение
Глава 17. Функции Windows API
Вызов функций Windows API, имеющих выходной строковый параметр char
Изменение типа, применяемого для маршалинга по умолчанию
Вызов функций, требующих structРабота с функциями обратного вызова в С#
Создание собственной управляемой библиотеки
Примеры использования функций API
Блокировка компьютера
Является ли текущий пользователь администратором?
Мигание заголовка формы
Форматирование дисков
Продолжаем работать со значками
Панель задач, кнопка Пуск и часы в области уведомлений
Смена обоев Рабочего стола
Использование функций обратного вызова
Получение списка кодовых страниц, установленных в системе
Заключение
Глава 18. Новинки Visual Studio 2008
Новшества в С# 3.0
Неявно типизированные переменные
Инициализация объектов
LINQ
Вывод чисел из заданного массива с условием
Ключевое слово Where
Увеличение на единицу ряда чисел
Вывод имени числа
Вывод строк из массива в разных регистрахОператор fake
Оператор TakeWhile
Оператор Skip
Оператор SkipWhile
Заключение
Глава 19. Ссылки на интересные места
Сайты
Блог
Заключение
Описание компакт-диска
Предметный указатель