Файл: Справочник для опытных и как пособие для начинающих программистов. Компактдиск содержит исходные коды примеров из книги.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. Имитация нажатия комбинации клавиш +. Вызов функции Microsoft API………………124

Пример 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) формы в оперативную память при старте про­граммы и проч.

Управляют тем или иным событием посредством написания процедуры обра­ботки события в программном коде. Для этого вначале нужно получить "пустой" обработчик события. В нашей задаче единственным событием, которым мы управляем, является щелчок на командной кнопке. Для получения пустого обра­ботчика этого события следует в свойствах кнопки