Файл: Справочник для опытных и как пособие для начинающих программистов. Компактдиск содержит исходные коды примеров из книги.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 2510

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Visual C# 2010 НА ПРИМЕРАХ Санкт-Петербург «БХВ-Петербург» 20113-59 Зиборов В. В.3-59 Visual С#2010 на примерах. — СПб.: БХВ-Петербург, 2011. —432 е.: ил. + CD-ROMISBN 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. Форма, кнопка, метка и диалоговое окноПосле инсталляции системы программирования VisualStudio 2010, включаю­щей в себя Visual С#2010, загрузочный модуль системы devenv.exe будет, скорее всего, расположен в папке: C:\ProgramFiIes\MicrosoftVisualStudio 10.0\Common7\ IDE.Целесообразно создать ярлык на рабочем столе для запуска Visual С#. После запуска увидим начальный пользовательский интерфейс, показанный на рис. 1.1.Рис. 1.1. Фрагмент стартовой страницы системы VisualStudio 2010Чтобы запрограммировать какую-либо задачу, необходимо в пункте меню File выполнить команду NewProject. В появившемся окне NewProject в левой колонке находится список инсталлированных шаблонов (InstalledTemplates). Среди них— шаблоны языков программирования, встроенных в VisualStudio, в том числе: VisualBasic, Visual С#, Visual С++, VisualF# и др. Нам нужен язык Visual С#. В средней колонке выберем шаблон (Templates) WindowsFormsApplicationC# и щелкнем на кнопке ОК. В результате увидим окно, представленное на рис. 1.2.В этом окне изображена экранная формаForm1, в которой программисты располагают различные компоненты графического интерфейса пользователя или, как их иначе называют, элементы управления. Это поля для ввода текста TextBox. командные кнопки Button, строчки текста в форме — метки Label, которые не могут быть отредактированы пользователем, и прочие элементы управления. Причем здесь используется самое современное так называемое визуальное программирование, предполагающее простое перетаскивание мышью из панели элементов Toolbox, где расположены всевозможные элементы управления, в форму. Таким образом, стараются свести к минимуму непосредственное написание программного кода.Ваша первая программа будет отображать такую экранную форму, в которой будет что-либо написано, например "MicrosoftVisual С#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 и напи­шем напротив этого поля "MicrosoftVisual С# 2010" (вместо текста label1). Для объекта button1 также в свойстве Text напишем "Нажми меня".Кроме того, что объекты имеют свойства, следует знать, что объекты обраба­тываются событиями. Событием, например, является щелчок на кнопке, щелчок в пределах формы, загрузка (Load) формы в оперативную память при старте про­граммы и проч.Управляют тем или иным событием посредством написания процедуры обра­ботки события в программном коде. Для этого вначале нужно получить "пустой" обработчик события. В нашей задаче единственным событием, которым мы управляем, является щелчок на командной кнопке. Для получения пустого обра­ботчика этого события следует в свойствах кнопки