Файл: Справочник для опытных и как пособие для начинающих программистов. Компактдиск содержит исходные коды примеров из книги.doc
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 914
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Visual C# 2010 НА ПРИМЕРАХ Санкт-Петербург «БХВ-Петербург» 2011
3-59 Зиборов В. В.
3-59 Visual С#2010 на примерах. — СПб.: БХВ-Петербург, 2011. —432 е.: ил. + CD-ROM
ISBN 978-5-9775-0698-4
Рассмотрено более 120 типичных примеров, встречающихся в практике реального программирования для платформы .NET Framework в среде Microsoft Visual С#2010: обработка событий мыши и клавиатуры, чтение/запись файлов, редактирование графических данных, управление буфером обмена, ввод/вывод данных, использование функций MS Word. MS Excel, AutoCAD и MATLAB, использование технологий LINQ и ADO.NET при работе с базами данных, разработка интерактивных Web-приложений, создание Web-служб, разработка WPF-приложений и многое другое. Материал располагается по принципу от простого к сложному, что позволяет использовать книгу одновременно как справочник для опытных и как пособие для начинающих программистов. Компакт-диск содержит исходные коды примеров из книги.
Для программистов
УДК681.3.068+800«2С# ББК 32.973.26-018.1
Группа подготовки издания:
Главный редактор Екатерина Кондукова
Зам. главного редактора Игорь Шишигин
Зав. редакцией Григорий Добин
Редактор Анна Кузьмина
Компьютерная верстка Натальи Смирновой
Корректор Наталия Першакова
Дизайн серии Игоря Цырульникова
Оформление обложки Елены Беляевой
Зав. производством Николай Тверских
Лицензия ИД № 02429 от 24.07.00. Подписано в печать 31.01.11. Формат 70x100V,e. Печать офсетная. Усл. печ. л. 34,83. Тираж 1500 экз. Заказ Ng 748 "БХВ-Петербург", 190005, Санкт-Петербург, Измайловский пр., 29.
Санитарно-эпидемиологическое заключение на продукцию № 77.99.60.953.Д.005770.05.09 от 26.05.2009 г. выдано Федеральной службой по надзору в сфере защиты прав потребителей и благополучия человека.
Отпечатано с готовых диапозитивов
в ГУП "Типография "Наука" 199034, Санкт-Петербург, 9 линия,
SBN 978-5-9775-0698-4 © Зиборов. В. В., 2011
© Оформление, издательство "БХВ-Петербург", 2011
Оглавление
Введение ……………………….1
Глава 1. Простейшие программы с экранной формой и элементами управления ………………………………………………………………3
Пример 1. Форма, кнопка, метка и диалоговое окно ………………………3
Пример 2. Событие
MouseHover ………………………8
Пример 3. Ввод данных через текстовое поле TcxtBoxс проверкой типа методом TryParse…………………………………..12
Пример 4. Ввод пароля в текстовое поле и изменение шрифта ……………………….16
Пример 5. Управление стилем шрифта с помощью элемента управления CheckBox ……………………………………………….17
Пример 6. Побитовый оператор "исключающее ИЛИ" ……………………….19
Пример 7. Вкладки TabControlи переключатели RadioButton ……………………….21
Пример 8. Свойство Visibleи всплывающая подсказка ToolTipв стиле Balloon ……………………….25
Пример 9. Калькулятор на основе комбинированного списка ComboBox ……………………….28
Пример 10. Вывод греческих букв, символов математических операторов. Кодовая таблица Unicode…………………..31
Глава 2. Программирование консольных приложений ...............................35
Пример 11. Ввод и вывод в консольном приложении ……………………….35
Пример 12. Вывод на консоль таблицы чисел с помощью форматирования строк…………………………………………………..38
Пример 13. Вызов MessageBox.Showв консольном приложении. Формат даты и времени……………………………………..39
Пример 14. Вызов функций Visual Basic из программы С# ………………………..41
Глава 3. Инициирование и обработка событий мыши и клавиатуры………………………………………………………………………………….45
Пример 15. Координаты курсора мыши относительно экрана и элемента управления…………………………………………….45
Пример 16. Создание элемента управления Button"программным" способом и подключение события для него…47
Пример 17. Обработка нескольких событий одной процедурой ……………………….50
Пример 18. Калькулятор …………………………...52
Пример 19. Ссылка на другие ресурсы LinkLabel ……………………………56
Пример 20. Обработка событий клавиатуры ……………………………58
Пример 21. Разрешаем вводить в текстовое поле только цифры ……………………………61
Пример 22. Разрешаем вводить в текстовое поле цифры, а также разделитель целой и дробной части числа ……..63
Глава 4. Чтение, запись текстовых и бинарных файлов, текстовый редактор……………………………………………………………………..67
Пример 23. Чтение/запись текстового файла в кодировке Unicode. Обработка исключений try...catch…………………..67
Пример 24. Чтение/запись текстового файла в кодировке Windows 1251 ………………………..71
Пример 25. Простой текстовый редактор. Открытие и сохранение файла. Событие формы Closing…………………………
73
Пример 26. Программа тестирования знаний студента по какому-либо предмету…………………………………………………..78
Пример 27. Простой RTF-редактор ………………………..84
Пример 28. Печать текстового документа ………………………..89
Пример 29. Чтение/запись бинарных файлов с использованием потока данных …………………………..93
Глава 5. Редактирование графических данных …………………………97
Пример 30. Простейший вывод отображения графического файла в форму ………………………..97
Пример 31. Использование элемента PictureBoxдля отображения растрового файла с возможностью прокрутки101
Пример 32. Рисование в форме указателем мыши ………………………..102
Пример 33. Рисование в форме графических примитивов (фигур) ………………………..105
Пример 34. Выбор цвета с использованием ListBox ………………………..108
Пример 35. Печать графических примитивов ………………………..111
Пример 36. Печать BMP-файла ………………………..112
Пример 37. Построение графика ………………………..113
Глава 6. Управление буфером обмена с данными в текстовом и графическом форматах…………………………………………………119
Пример 38. Буфер обмена с данными в текстовом формате ………………………..119
Пример 39. Элемент управления PictureBox. Буфер обмена с растровыми данными……………………………………………..121
Пример 40. Имитация нажатия комбинации клавиш
Пример 41. Запись содержимого буфера обмена в BMP-файл ……………………….126
Пример 42. Использование таймера Timer ……………………….128
Пример 43. Запись в файлы текущих состояний экрана каждые пять секунд ……………………….129
Глава 7. Ввод и вывод табличных данных. РЕШЕНИЕ СИСТЕМЫ УРАВНЕНИИ……………………………………………………………..133
Пример 44. Формирование таблицы. Функция String.Format ……………………….133
Пример 45. Форматирование ОсшЫе-переменных в виде таблицы. Вывод таблицы на печать. Поток StringReader136
Пример 46. Вывод таблицы в Internet Explorer ……………………….139
Пример 47. Формирование таблицы с помощью элемента управления DataGridView……………………………………………142
Пример 48. Табличный ввод данных. DataGridView. DataTable. DataSet. Инструмент для создания файла XML……144
Пример 49. Решение системы линейных уравнений. Ввод коэффициентов через DataGridView……………………………148
Глава 8. Элемент управления WebBrowser …………………………155
Пример 50. Отображение HTML-таблиц ……………………….155
Пример 51. Отображение Flash-файлов.... ……………………….157
Пример 52. Отображение Web-страницы и ее HTML-кода ……………………….158
Пример 53. Программное заполнение Web-формы ……………………….160
Глава 9. Использование функций MS Word, MS Excel, AutoCAD и MATLAB…………………………………………………………………..165
Пример 54. Проверка правописания в текстовом поле с помощью обращения к MS Word……………………………………165
Пример 55. Вывод таблицы средствами MS Word ……………………….168
Пример 56. Обращение к функциям MS Excel из Visual С# 2010 ……………………….171
Пример 57. Использование финансовой функции MS Excel ……………………….173
Пример 58. Решение системы уравнений с помощью функций MS Excel ……………………….176
Пример 59. Построение диаграммы средствами MS Excel ……………………….179
Пример 60. Управление функциями AutoCAD из программы на Visual С# 2010 ……………………….181
Пример 61. Вызов MATLAB из вашей программы на Visual С# 2010 ……………………….184
Пример 62. Решение системы уравнений путем обращения к MATLAB ……………………….186
Глава 10. Обработка баз данных с использованием технологии ADO.NET……………………………………………………………………….189
Пример 63. Создание базы данных SQL Server ……………………….189
Пример 64. Отображение таблицы базы данных SQL Server в экранной форме ……………………….191
Создание базы данных в среде MS Access ……………………….192
Пример 65. Редактирование таблицы базы данных MS Access в среде Visual Studio без написания программного кода194
Пример 66. Отображение таблицы базы данных MS Access в экранной форме ……………………….195
Пример 67. Чтение всех записей из таблицы БД MS Access на консоль с помощью объектов классов Commandи DataReader……………………………………………………………………………………………………………………………………………………………………..197
Пример 68. Создание базы данных MS Access в программном коде ……………………………..199
Пример 69. Запись структуры таблицы в пустую базу данных MS Access. Программная реализация подключения к БД201
Пример 70. Добавление записей в таблицу базы данных MS Access ………………………………204
Пример 71. Чтение всех записей из таблицы базы данных с помощью объектов классов Command, DataReaderи элемента управления DataGridView………………………………………………………………………………………………………………………………205
Пример 72. Чтение данных из БД в сетку данных DataGridViewс использованием объектов классов Command, Adapterи DataSet…………………………………………………………………………………………………………………………………………………………….208
Пример 73. Обновление записей в таблице базы данных MS Access ……………………………….210
Пример 74. Удаление записей из таблицы базы данных с использованием SQL-запроса и объекта класса Command214
Глава 11. Использование технологии LINQ …………………………….217
Пример 75. LINQ-запрос к массиву данных ……………………………217
Пример 76. LINQ-запрос к коллекции (списку) данных ……………………………220
Пример 77. Группировка элементов списка с помощью LINQ-запроса ……………………………225
Пример 78. LINQ-запрос к словарю данных Dictionary ……………………………227
Пример 79. Создание XML-документа методами классов пространства имен System.Xml.Linq………………………………….230
Пример 80. Извлечение значения элемента из XML-документа ……………………………..234
Пример 81. Поиск строк (записей) в XML-данных с помощью LINQ-запроса ……………………………239
Пример 82. LINQ-запрос к набору данных DataSet ……………………………242
Пример 83. Доступ к базе данных с помощью LINQ to SQL ……………………………245
Глава 12. Другие задачи, решаемые с помощью Windows Application………………………………………………………………………………..249
Пример 84. Проверка вводимых данных с помощью регулярных выражений ……………………………249
Пример 85. Управление прозрачностью формы ……………………………252
Пример 86. Время по Гринвичу в полупрозрачной форме ……………………………253
Пример 87. Ссылка на процесс, работающий в фоновом режиме, в форме значка в области уведомлений…………….256
Пример 88. Нестандартная форма. Перемещение формы мышью …………………………..259
Пример 89. Проигрыватель Windows Media Player 11 …………………………..261
Пример 90. Программирование контекстной справки. Стандартные кнопки в форме……………………………………………….265
Создание инсталляционного пакета для распространения программы …………………………..267
Глава 13. Программирование простейших Web-ориентированных приложений на Visual С# 2010……………………………………..269
Создание Web-страницы на языке HTML. Интернет-технологии ……………………………….269
Web-хостинг на платформах UNIX и Windows …………………………..271
Клиент-серверное взаимодействие на основе технологии ASP.NET …………………………..271
Отладка активного Web-приложения …………………………..272
Пример 91. Создание простейшей активной Web-страницы на Visual С# 2010 ………………………..273
Пример 92. Проверка введенных пользователем числовых данных с помощью валидаторов………………………………….276
Пример 93. Проверка достоверности ввода имени, адреса e-mail, URL-адреса и пароля с помощью валидаторов…279
Пример 94. Регистрация и аутентификация пользователя с помощью базы данных Access……………………………………….284
Пример 95. Таблица с переменным числом ячеек, управляемая двумя раскрывающимися списками……………………..293
Пример 96. Организация раскрывающегося меню гиперссылок с помощью DropDownList………………………………………..295
Пример 97. Передача данных между Web-страницами через параметры гиперссылки……………………………………………..298
Пример 98. Передача данных HTML-формы на ASPX-страницу методами класса Request…………………………………………..302
Пример 99. Передача значений элементов управления на другую Web-страницу с помощью объекта PreviousPage..305
Пример 100. Отображение табличных данных в Web-форме с помощью элемента управления GridView…………………309
Пример 101. Отображение в Web-форме хэш-таблицы …………………………311
Глава 14. Типичные Web-ориентированные приложения ASP.NET на Visual С# 2010 ………………………….315
Пример 102. Чтение/запись текстового файла Web-приложением …………………………315
Пример 103. Программирование счетчика посещений сайта с использованием базы данных и объекта Session………320
Пример 104. Чтение/запись cookie-файлов …………………………325
Пример 105. Вывод изображения в Web-форму …………………………329
Пример 106. Формирование изображения методами класса Graphicsи вывод его в Web-форму………………………………333
Пример 107. Гостевая книга …………………………336
Пример 108. Программирование капча …………………………341
Пример 109. Отображение времени в Web-форме с использованием технологии AJAX …………………………347
Глава 15. Создание Web-служб и их клиентов ………………………….349
О Web-службах …………………………349
Пример 110. Клиентское Web-приложение, потребляющее сервис Web-службы "Прогноз погоды"………………………….350
Пример 111. Клиентское Windows-приложение, использующее Web-службу "Прогноз погоды"………………………………..355
Пример 112. Создание простейшей Web-службы ………………………..358
Пример 113. Создание Windows-приложения — потребителя сервиса Web-службы…………………………………………………..361
Пример 114. Web-служба "Торговая рекомендация на рынке Forex" …………………………………363
Пример 115. Клиентское приложение, потребляющее сервис Web-службы "Торговая рекомендация на рынке Forex"367
Пример 116. Клиентское Web-приложение, потребляющее сервис Web-службы "Морфер"………………………………………. 368
Пример 117. Получение данных от Web-службы Центрального банка РФ Web-приложением…………………………………….371
Пример 118. Получение данных от Web-службы Национального банка Республики Беларусь Windows-приложением373
Глава 16. Использование технологии WPF ………………………………..377
Что может нам дать WPF? …………………………………..377
Пример 119. Создание простейшего WPF-приложения. Компоновка элементов управления с помощью сетки Grid….378
Пример 120. Использование одного из эффектов анимации …………………………………..383
Пример 121. Эффект постепенной замены (прорисовки) одного изображения другим………………………………………………..З86
Пример 122. Закрашивание области текста горизонтальным линейным градиентом…………………………………………………..389
Пример 123. Проверка орфографии в элементе управления редактирования текста……………………………………………………390
Пример 124. Программирование WPF-проигрывателя. Компоновка элементов управления с помощью панели StackPanel……………………………………………………………………………………………………………………………………………………………………………393
Пример 125. Наложение текста на видео ………………………………….398
Пример 126. Переходы в WPF-приложениях ………………………………….400
Приложение. Описание компакт-диска ……………………………….405
Предметныи указатель ……………………………….421
Microsoft_Windows_и_Интернета'>Microsoft_Visual__С2010'>Введение
Система разработки программного обеспечения Microsoft Visual С#2010 является хорошим средством быстрой разработки программ для ускоренного создания приложений для Microsoft Windows и Интернета. Цель книги — популяризация программирования. Автор стремился показать, как малой кровью можно написать, почти сконструировать, как в детском конструкторе, довольно-таки функционально сложные приложения. Для реализации этой цели автор выбрал форму демонстрации на примерах решения задач от самых простых, элементарных, до более сложных.
Так, рассмотрены примеры программ с экранной формой и элементами управления в форме, такими как текстовое поле, метка, кнопка и др. Написанные программы управляются событиями, в частности событиями мыши и клавиатуры. Поскольку большинство существующих программ взаимодействует с дисковой памятью, в книге приведены примеры чтения и записи файлов в долговременную память. Описаны решения самых типичных задач, которые встречаются в практике программирования, в частности работа с графикой и буфером обмена. Рассмотрены манипуляции табличными данными, использование обозревателя Web-страниц для отображения различных данных. Приведены примеры программирования с применением функций (методов) объектных библиотек систем Microsoft Office, MATLAB и AutoCAD. Разобраны вопросы обработки баз данных SQL Server и MS Access с помощью технологии ADO.NET. Рассмотрены методы обработки различных источников данных с использованием технологии LINQ. Приведены примеры программирования Web-ориентированных приложений, а также использования и разработки Web-сервисов. Новейшая технология WPF представлена несколькими выразительными примерами.
Несколько слов об особенностях книги. Спросите у любого программиста, как он работает (творит...) над очередной поставленной ему задачей. Он вам скажет, что всю задачу он мысленно разбивает на фрагменты и вспоминает, в каких уже решенных им задачах он уже сталкивался с подобной ситуацией. Далее он просто копирует фрагменты отлаженного программного кода и вставляет их в новую задачу. Сборник таких фрагментов (более 120 примеров) содержит данная книга. Автор пытался выделить наиболее типичные, актуальные задачи и решить их, с одной стороны, максимально эффективно, а с другой стороны, кратко и выразительно. Вместе с книгой читателю предлагается компакт-диск с рассмотренными в книге примерами.
Самая серьезная проблема в программировании больших, сложных программ — это сложность, запутанность текстов. Из-за запутанности программ имеются ошибки, нестыковки и проч. Как следствие — страдает производительно
сть процесса создания программ и их сопровождение. Решение этой проблемы состоит в структуризации программ. Появление объектно-ориентированного программирования связано в большой степени со структуризацией программирования. Мероприятия для обеспечения большей структуризации — это проектирование программы как иерархической структуры, отдельные процедуры, входящие в программу, не должны быть слишком длинными, неиспользование операторов перехода goto и проч. Кроме того, современные системы программирования разрешают в названиях переменных, методов, свойств, событий, классов, объектов использовать русские буквы. Между тем современные программисты, как правило, не используют данную возможность, хотя когда вдруг в среде англоязычного текста появляются русские слова, это вносит большую выразительность в текст программы, и тем самым большую структуризацию. Программный код начинает от этого лучше читаться, восприниматься человеком (транслятору, компилятору — все равно).
Данная книга предназначена для начинающих программистов, программистов среднего уровня, а также для программистов, имеющих навыки разработки на других языках и желающих ускоренными темпами освоить новый для себя язык Visual С# 2010. Как пользоваться книгой? Эффективно пользоваться книгой можно, последовательно решая примеры в порядке их представления в книге, поскольку примеры расположены от простого к более сложному. И тем самым постепенно совершенствуя свои навыки программирования на Visual С#.А для программистов среднего уровня можно посоветовать искать выборочно именно те задачи, которые возникли у них при программировании их текущих задач.
Надеюсь, что читатель получит одновременно удовольствие и пользу от использования данной книги в своей работе и творчестве. Свои впечатления о данной книге присылайте по адресу ziborov@ukr.net, я с удовольствием их почитаю.
ГЛАВА 1 Простейшие программы с экранной формой и элементами управления
Пример 1. Форма, кнопка, метка и диалоговое окно
После инсталляции системы программирования Visual Studio 2010, включающей в себя Visual С#2010, загрузочный модуль системы devenv.exe будет, скорее всего, расположен в папке: C:\Program FiIes\Microsoft Visual Studio 10.0\Common7\ IDE.
Целесообразно создать ярлык на рабочем столе для запуска Visual С#. После запуска увидим начальный пользовательский интерфейс, показанный на рис. 1.1.
Рис. 1.1. Фрагмент стартовой страницы системы Visual Studio 2010
Чтобы запрограммировать какую-либо задачу, необходимо в пункте меню File выполнить команду New Project. В появившемся окне New Project в левой колонке находится список инсталлированных шаблонов (Installed Templates). Среди них— шаблоны языков программирования, встроенных в Visual Studio, в том числе: Visual Basic, Visual С#, Visual С++, Visual F# и др. Нам нужен язык Visual С#. В средней колонке выберем шаблон (Templates) Windows Forms Application C# и щелкнем на кнопке ОК. В результате увидим окно, представленное на рис. 1.2.
В этом окне изображена экранная форма— Form1, в которой программисты располагают различные компоненты графического интерфейса пользователя или, как их иначе называют, элементы управления. Это поля для ввода текста TextBox. командные кнопки Button, строчки текста в форме — метки Label, которые не могут быть отредактированы пользователем, и прочие элементы управления. Причем здесь используется самое современное так называемое визуальное программирование, предполагающее простое перетаскивание мышью из панели элементов Toolbox, где расположены всевозможные элементы управления, в форму. Таким образом, стараются свести к минимуму непосредственное написание программного кода.
Ваша первая программа будет отображать такую экранную форму, в которой будет что-либо написано, например "Microsoft Visual С#2010", также в форме будет расположена командная кнопка с надписью "Нажми меня". При нажатии кнопки появится диалоговое окно с сообщением "Всем привет!"
Рис. 1.2. Окно для проектирования пользовательского интерфейса
Написать такую программку — вопрос 2—3 минут. Но вначале я хотел бы буквально двумя словами объяснить современный объектно-ориентированный подход к программированию. Подход заключается в том, что в программе все, что может быть
названо именем существительным, называют объектом. Так, в нашей программе мы имеем четыре объекта: форму Form, надпись на форме Label, кнопку Button и диалоговое окно MessageBox с текстом "Всем привет!" (окно с приветом). Итак, добавьте метку и кнопку на форму примерно так, как показано на рис. 1.3.
Рис. 1.3. Форма первого проекта
Любой такой объект можно создавать самому, а можно пользоваться готовыми объектами. В данной задаче мы пользуемся готовыми визуальными объектами, которые можно перетаскивать мышью из панели элементов управления Toolbox. В этой задаче нам нужно знать, что каждый объект имеет свойства (properties). Например, свойствами кнопки являются (рис. 1.4): имя кнопки (Name)— button1, надпись на кнопке (Text), расположение кнопки (Location) в системе координат формы х, у, размер кнопки size и т. д. Свойств много, их можно увидеть, если щелкнуть правой кнопкой мыши в пределах формы и выбрать в контекстном меню команду Properties; при этом появится панель свойств Properties (см. рис. 1.4).
Указывая мышью на все другие элементы управления в форме, можно просмотреть их свойства: формы Form1 и надписи в форме — метки label1.
Вернемся к нашей задаче. Для объекта label1 выберем свойство Text и напишем напротив этого поля "Microsoft Visual С# 2010" (вместо текста label1). Для объекта button1 также в свойстве Text напишем "Нажми меня".
Кроме того, что объекты имеют свойства, следует знать, что объекты обрабатываются событиями. Событием, например, является щелчок на кнопке, щелчок в пределах формы, загрузка (Load) формы в оперативную память при старте программы и проч.
Управляют тем или иным событием посредством написания процедуры обработки события в программном коде. Для этого вначале нужно получить "пустой" обработчик события. В нашей задаче единственным событием, которым мы управляем, является щелчок на командной кнопке. Для получения пустого обработчика этого события следует в свойствах кнопки