Tw-city.info

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование с использованием microsoft windows forms

ProgBook — книги и учебники по программированию

С# 4.0 на примерах — Бен Ватсон

Издание «С# 4.0 на примерах» предлагает рассмотреть на конкретных примерах принципы программирования на языке Microsoft С# 4.0, при этом даются основы языка и разбираются решения типичных задач с использованием .NET Framework. В книге продемонстрировано, как наиболее эффективно создавать классы, интерфейсы, типы, программный код, который допускает многократное применение. Освещаются приемы обработки данных, принцип которых основан на использовании сериализации, коллекций, баз данных и XML. Показано, каким образом создаются веб-приложения на основе технологий Silverlight и ASP .NET, а также как реализуется пользовательский интерфейс с использованием технологий WPF и WinForms. На практике подробно рассматриваются новые возможности языка С# 4.0. Значительное внимание уделяется организации взаимодействия с системным программным обеспечением и операционной системой Windows, эффективному использованию шаблонов, предназначенных для создания сложных программ. В книге предоставлено более 200 готовых решений, примеров уже проверенного кода и оптимальных технических приемов. Издание, в первую очередь, ориентировано на программистов.

Современная практика программирования на Microsoft Visual Basic и Visual C# — Франческо Балена, Джузеппе Димауро

«Современная практика программирования на Microsoft Visual Basic и Visual C#» представляет собой профессиональное руководство, написанное известными программистами, и объединяет в себе богатый опыт разработчиков и консультантов по применению Visual Basic и Visual C#. Книга содержит практические рекомендации и эффективные методики программирования для существенного повышения уровня разработки программ. Детально описываются правила, их назначения, все преимущества и недостатки их применения, различные исключения из правил и существующие им альтернативы, а также практические примеры их применения. Благодаря передовым методикам, рассмотренным в книге, разработчики научатся писать безопасный, надежный и универсальный код, использовать все преимущества Microsoft .NET Framework, создавать эффективные программные решения, повышать продуктивность командной разработки путем согласования стилей и методов кодирования, создавать рациональные библиотеки классов и практичные иерархии объектов и т.д.
Руководство предоставляет передовые методики работы с ресурсами, типами и структурами, сборками, полями, методами, свойствами, событиями, конструкторами, интерфейсами, числами и датами, исключениями, пользовательскими атрибутами, строками, наборами и массивами, памятью; с приложениями Windows Forms , Microsoft ASP .NET Web Forms, различными веб-сервисами, Microsoft ADO .NET; потоками и синхронизацией; компонентами, обеспечением безопасности, удаленным взаимодействием и др. Книга состоит из 33 глав и трех приложений и позволит специалисту значительно расширить свой программистский опыт и развить творческие способности в этой сфере.

Visual C# на примерах — Михаил Абрамян

Книга «Visual C# на примерах» содержит в себе описание тридцати двух проектов, которые демонстрируют разные нюансы проектирования Windows-приложений для .NET Framework в области Visual C# 2005/2008. Здесь описываются наиболее рациональные приемы создания программ, управляемых событиями, характерные особенности консольных и MDI-приложений, а также механизм обработки исключений. В ней детально описываются ключевые элементы Windows Forms и классы, которые входят в графическую библиотеку GDI+. В данной книге демонстрируются приемы работы с мышью и клавиатурой, дополнительные функции .NET-приложений, в т.ч. реализация режима drag & drop, а также работа с реестром Windows и многое другое. На прилагаемом диске Вы найдете исходные тексты проектов, которые написаны в книге. Издание предназначено для программистов.

Привязка данных в Windows Forms — Брайан Нойес

Практически всем серьезным приложениям Windows необходимо использовать данные, которые хранятся в базах данных, и обеспечивать взаимодействие пользователя с вышеуказанными данными. Именно тут начинают работать средства и механизмы привязки данных, которым полностью посвящено издание «Привязка данных в Windows Forms». В ней детально описаны все нюансы привязки данных на вышеуказанной платформе. В этой книге описываются средства, которые обеспечивают связь с БД, такие, как адаптеры таблиц и типизированные наборы данных, привязываемые к данным компоненты управления, методики и средства обработки ошибок, интерфейсы и события привязки данных. Здесь даются подробные инструкции и советы по работе со средствами Microsoft Visual Studio, предназначенными для привязки данных. Отметим, что большое внимание в описываемом издании уделяется нововведениям, таким, как элемент управления DataGridView и адаптеры таблиц. В данной книге обсуждается написание специальных пользовательских объектов и элементов управления, которые пригодны для привязки данных. Необходимо сказать, что в приложениях рассматриваются различные параллельные вопросы, которые связаны с привязкой данных, например, доступ информационным данным в ADO.NET и привязка в ASP.NET. Эта книга в первую очередь адресована программистам, которые занимаются написанием клиентских приложений для баз данных.

Программирование с использованием Microsoft Windows Forms — Чарльз Петцольд

В книге «Программирование с использованием Microsoft Windows Forms» детально повествуется о создании программ для ОС Windows с применением библиотеки классов Windows Forms, которая входит в .NET Framework 2.0, и языка C#. Прочитав эту книгу, Вы сможете научиться комбинировать уже существующие и создавать новые нестандартные элементы управления, и даже разрабатывать меню, панели инструментов и строки состояния, применяя новинки, которые появились в .NET Framework 2.0. Из этой книги Вы узнаете об инновационном механизме динамического размещения компонентов управления на форме, а также о привязке различных элементов управления к данным. Описываемая книга состоит из семи глав и адресована программистам, которые хотят освоить новые возможности, предлагаемые .NET Framework 2.0, разработчикам, обладающим достаточным опытом программирования для Windows и всем тем, кто хочет максимально эффективно и быстро освоить Windows Forms.

Введение в Windows Forms — пишем первую программу

В данной статье будет рассказано о том как написать простой обработчик событий на C++ для приложения Windows Forms, работающего под управления .NET Framework. Мы создадим простейшую Windows программу, которая вычисляет факториал целого числа. Для написания данной программы Вам понадобится Visual Studio 2008 Express Edition или Professional.

Для начала создадим проект.

Откроем Visual Studio, далее жмем Файл→Создать→Проект, далее выбираем пункт CLR и отмечаем Приложение Windows Forms, даем имя проекта, к примеру factr и жмем Ok.

После того как мы создали проект, должна появиться пустая форма, которая должна выглядеть примерно так:

Справа должна появиться панель элементов, если ее нет, то можно включить ее в меню Вид→Панель Элементов или нажатием горячих клавиш — Ctrl + Alt + X.

На ней расположены различные элементы для вставки в форму, нам понадобятся только элементы Button (Кнопка), Label (Надпись) и TextBox (Текстовое поле). Перетащите на форму три элемента Label, Два элемента TextBox, и одну кнопку (Button), расставьте элементы примерно так:

Теперь нам нужно будет изменить текст надписей для элементов Label и Button и Задать подходящие имена классов для элементов TextBox. Для этого Выделите элемент label1, перейдите в Панель свойств, (обычно она находится под Панелью элементов, если панель выключена, включите ее в меню Вид -> Диспетчер свойств.) и задайте для данного элемента значение атрибута Text как показано на рисунке.

Задайте атрибут Text для всех элементов Label и Кнопки Button аналогичным образом. Наша форма должна принять примерно следующий вид:

Я сделал кнопку развернуть неактивной, так как изменение размеров данной формы испортит ее внешний вид, Вы также можете это сделать, щелкнув левой кнопкой мыши на пустом месте формы и в Панели свойств задать для атрибута MaximizeBox параметр False.

Теперь задайте для текстовых полей (TextBox) Атрибуты Name в Панели Свойств – для первого поля это будет num1, а для второго, соответственно num2. Тем самым мы изменили имена классов для полей TextBox, чуть позднее Вы поймете зачем.

Итак, каркас формы готов, если откомпилировать и запустить программу, то мы увидим, какой будет наша форма на финише, правда сейчас она совершенно бесполезна. Перейдем к написанию обработчика событий для кнопки Button, т.е. что будет происходить при нажатии на эту кнопку, также мы напишем саму функцию вычисления факториала, которую мы будем использовать в обработчике.

Читать еще:  Язык программирования визуал бейсик

Первым делом нужно добавить заголовочный файл fact.h в проект, для этого щелкаем правой кнопкой мыши в Обозревателе решений на папке Заголовочные файлы, далее меню Добавить -> Создать Элемент, вписываем название файла – fact.h и нажимаем Добавить. В данном файле будет содержаться прототип функции для вычисления факториала. Добавляем туда следующий исходный код.

Далее подключаем этот файл к проекту с помощью директивы #include – Открываем файл factr.cpp и добавляем после строчки #include «stdafx.h» следующий код.

Теперь наш заголовочный файл подключен к проекту, далее аналогичным образом создаем файл исходного кода fact.cpp в проект.

В него добавляем саму функцию вычисления факториала целого числа.

Теперь наш проект содержит функцию вычисления факториала, откомпилируйте его, если ошибок нет, то можно приступить к написанию обработчика событий для кнопки Button.

Открываем файл Form.h, в нем мы видим визуальное представление нашей формы. Щелкаем двойным щелчком на кнопке Button и переходим к исходному коду.

После фигурной скобки ставим абзац и приступаем к кодированию. Любой набор символов, которые мы вводим с клавиатуры в текстовое поле программы является строкой, поэтому нам нужно вытащить значение из текстового поля и привести его к целочисленному типу. Это довольно сложная процедура, но, к счастью в языке C++ уже есть множество функций, выполняющих конвертирование типов данных. Сначала нам необходимо описать и инициализировать переменную, в которой будет храниться значение числа, для которого должен быть вычислен факториал. Добавим в том место, где Вы поставили абзац следующий код:

Эта строка инициализирует переменную, которая хранит в себе число для вычисления его факториала. Далее нам нужно будет произвести вызов нашей функции fact с переменной number в качестве единственного аргумента и занести результат работы функции в новую переменную factor.

И затем преобразовать полученное значение обратно в строку и присвоить его второму текстовому полю.

Таким образом, наш простой обработчик событий будет выглядеть вот так:

Теперь можно скомпилировать и запустить готовую программу и проверить ее. Помните, что тип double в С++ может хранить число не превышающее !170.

Результат работы программы можно проверить в инженерном калькуляторе Windows.

Программирование в .NET Framework

Приложения Windows Forms

Если вы захотите писать программы, похожие на привычные приложения Windows, то наверняка воспользуетесь классами из пространства имен System.Windows.Forms . Они позволяют задействовать кнопки, списки, текстовые поля, меню, окна сообщений и множество других «элементов управления». Элементы управления — это то, что вы помещаете в форму. Они нужны для вывода информации, например, текстовой (элемент управления Label ) или графической (элемент управления PictureBox ), либо для выполнения определенных действий, например, выбора значения или перехода к другой форме после нажатия кнопки. Все элементы управления помещаются на форму.

Понятие «форма», принятое в программировании, родственно понятию «форма анкеты» или «форма документа» из обычной жизни. На форме можно в определенном порядке расположить различные элементы (текст , картинки, поля для заполнения и т. д.). Когда нам дают готовую форму документа и просят ее заполнить, мы обычно читаем содержащуюся в ней типовую информацию, а затем вписываем недостающие данные в определенные строки.

В программировании понятие формы во многом похоже: форма позволяет размещать текст, изображения, поля ввода, кнопки и т. п., добиваясь их точного расположения на экране. В консольном приложении на экран выводятся только строки текста.

Компания Майкрософт предоставила в составе библиотеки классов .NET Framework огромное количество «элементов управления», которые можно помещать на формы. Освоив этот инструмент, вы сможете быстро создавать эффектные приложения.

Некоторые полезные классы из пространства имен System.Windows.Forms

Вот некоторые элементы управления, которые можно размещать на формах:

  • Label (Надпись).
  • Button (Кнопка).
  • ListBox (Список).
  • CheckBox (Флажок).
  • RadioButton (Переключатель).
  • MessageBox (Окно сообщений).
  • Menu (Меню).
  • TabControl (Управление вкладками).
  • Toolbar (Панель инструментов).
  • TreeView (Дерево).
  • DataGrid (Сетка данных).
  • PictureBox (Изображение).
  • RichTextBox (Текстовое поле с поддержкой формата RTF ).

Работа с примерами программ Windows Forms в Visual C# Express

Возможно, вы предпочтете не использовать уже заготовленные примеры проектов, а разрабатывать их «с нуля». В таком случае нужно учесть, что для каждого проекта C# Express сразу же создает два файла (с именами Form1.cs и Program.cs ) и наполняет их исходным кодом на языке C#, то есть вы изначально получаете простейшую, но полноценную программу. Предлагаемый нами способ работы с уже полученным проектом состоит в выполнении следующих действий:

  • Удалите файл Form1.cs.
  • Замените код в файле Program.cs на код примера, с которым вы работаете.

Оба этих действия не понадобятся, если вы открываете программы с помощью команды «Открыть проект» в меню «Файл» и находите нужный проект в той папке, куда его поместили после разархивации.

Пример программы 3.3

Рассмотрим пример простейшего приложения Windows Forms. Оно всего лишь создает новую форму и выводит определенный текст в заголовок окна формы.

Пример программы 3.4

Следующий пример тоже достаточно прост, но мы делаем шаг вперед — размещаем на форме кнопку.

Пример программы 3.5

Кнопку на форму мы поместили, но при нажатии на нее ничего не происходит. Это скучно.

Нам нужно описать метод, который будет выполнять какое-либо действие при нажатии на кнопку. Пусть при этом текст в заголовке окна будет меняться. Поскольку такой метод отслеживает наступление некоторого события (в нашем случае – нажатие на кнопку) и затем каким-то образом обрабатывает его, он, напомним, называется «обработчик события». Кроме того, надо привязать обработчик события к соответствующему событию, то есть к нажатию на кнопку.

Пример программы 3.6

Мы добились успеха: наша программа умеет выполнять основные действия. Теперь добавим на форму несколько новых элементов управления, аккуратно разместим их и немного поработаем с ними. Возьмем элементы управления 4-х типов: Button, ListBox, MessageBox и PictureBox.

BestProg

Создание приложения типа Windows Forms Application в MS Visual Studio — C++ . Обзор основных файлов проекта

В данной теме рассмотрены особенности создания приложения типа Windows Forms Application с поддержкой языка C++ . Такой тип приложения поддерживает все преимущества технологии .NET Framework .

Выполнение

1. Загрузить Microsoft Visual Studio .

В результате будет создано окно с активной вкладкой Start Page (рисунок 1).

Рисунок 1. Окно Microsoft Visual Studio

2. Создание приложения типа Windows Forms Application

Чтобы создать новый проект (решение) на языке C++ , нужно выбрать последовательность команд (рис. 2):

Система Microsoft Visual Studio предлагает разные виды шаблонов приложения для программирования на языке C++ (рис. 2).

Рисунок 2. Вызов команды создания нового проекта

В результате откроется окно « New Project » (рисунок 3), в котором нужно выбрать шаблон « Visual C++ » и тип приложения Windows Forms Application .

В поле « Location: » надо задать путь к папке, в которой будет сохранен проект. В нашем случае задан следующий путь

В поле Name задается имя приложения. В нашем случае это имя « MyApp01 «.

Если включена опция « Create directory for solution » (создать директорию для решения), то проект будет сохранен в папке

В поле « Solution name: » задается имя решения. Решение ( solution ) может объединять в себе несколько проектов. В нашем случае имя решения остается таким как и имя проекта.

Рисунок 3. Окно « New Project » создания нового проекта

3. Основные элементы оконного интерфейса для работы с программой

После выбора «ОК» в предыдущем окне « New Project «, система Microsoft Visual Studio создаст весь необходимый код для работы приложения типа Windows Forms Application .

В результате окно Microsoft Visual Studio примет вид как показано на рисунке 4.

В окне, в центре отображается основная форма приложения. На этой форме можно размещать компоненты. Компоненты размещаются на панели Toolbox (левая часть экрана).

Читать еще:  Объектно ориентированное программирование visual basic

Свойства формы или компонента отображаются в утилите Solution Explorer (правая часть экрана). Изменяя эти свойства, можно влиять на вид формы, поведение формы, реализовывать обработчики событий формы и прочее.

Рисунок 4. Основные элементы окна приложения

4. Вызов режима ввода кода

На данный момент активным есть режим проектирования формы. Чтобы перейти в режим набора текста программы, нужно вызвать команду Code с меню View (рисунок 5):

Рисунок 5. Команда перехода в режим набора текста программы

Другой вариант вызова команды перехода в режим набора текста, это клик на соответствующей кнопке в Solution Explorer (рисунок 6).

Рисунок 6. Кнопка перехода в режим набора текста программы

В результате отобразится текст программы.

Рисунок 7. Режим просмотра текста программы

5. Текст модуля « Form1.h «

При создании проекта, система Microsoft Visual Studio генерирует программный код, который сохраняется в различных файлах.

Главным файлом, в котором программист создает собственный код программы, есть файл « Form1.h «. Этот файл соответствует главной форме приложения. На главной форме размещаются различные компоненты. С помощью этих компонент реализуется решение конкретной задачи. При создании проекта создается пустая форма (рисунок 6). Кроме главной формы можно создавать другие формы и добавлять их к проекту.

Листинг файла « Form1.h » следующий.

Объясним некоторые фрагменты кода в тексте программы.

В вышеприведенном тексте создается пространство имен MyApp01 с помощью оператора

В этом пространстве имен подключаются другие пространства имен из библиотеки .NET Framework :

В пространстве имен MyApp01 создается класс с именем Form1. Этот класс соответствует главной форме приложения Form1.

Класс содержит конструктор, который вызывает метод

В методе InitializeComponent() создается компонента-форма (переменная components ), которая есть контейнером. Это означает, что на форме могут размещаться другие компоненты (кнопки, метки, поля ввода и т.д.). Также в методе InitializeComponent() настраиваются параметры формы: название заголовка, размер (300 * 300 пикселей), шрифт по умолчанию.

Form1() уничтожает форму (переменная components ) с помощью оператора delete .

6. Файлы, которые создаются в проекте

После создания проекта типа Windows Forms Application система Microsoft Visual Studio создает несколько файлов.

Рисунок 8. Файлы C++ , которые создаются в проекте типа Windows Forms Application

Как было сказано раньше, главным файлом есть файл « Form1.h » (см. п. 5). Также, согласно правилам языка C++ , создается файл реализации « MyApp01.cpp «. В этом файле есть главная функция main() . Этот файл содержит код отображающий главную форму.

Листинг файла « MyApp01.cpp » следующий:

Файл « MyApp01.vcxproj «. Это главный файл проектов на Visual C++ , которые генерируются с использованием мастера приложений ( Application Wizard ). В нем содержится информация о версии Visual C++ , в которой сгенерирован файл, информация о платформах, настройках и особенностях (характеристиках) проекта выбранных с помощью мастера приложений ( Application Wizard ).

Файл « MyApp01.vcxproj.filters «. Это есть файл фильтров для сгенерированных проектов на Visual C++ с использованием мастера приложений ( Application Wizard ). В нем содержится информация об ассоциации между файлами в вашем проекте и фильтрами. Эта ассоциация используется в интегрированной среде, чтобы показать группирование файлов с одинаковыми расширениями.

Файл « AssemblyInfo.cpp «. Содержит пользовательские атрибуты для модификации данных сборки.

Файли « StdAfx.h » и « StdAfx.cpp «. Они используются для создания файла скомпилированных заголовков ( PCH ) с именем « MyApp01.pch » и скомпилированных типов названных « StdAfx.obj «.

7. Запуск проекта на выполнение

Для запуска проекта на выполнение используется команда Start Debuggin из меню Debug (клавиши F5).

Windows Forms: Современная модель программирования для создания GUI приложений

Чтобы создать GUI приложения в Microsoft .NET нужно использовать Windows Forms. Windows Forms — новый стиль построения приложения на базе классов .NET Framework class library. Они имеют собственную модель программирования, которая более совершеннее, чем модели, основанные на Win32 API или MFC, и они выполняются в управляемой среде .NET Common Language Runtime (CLR). Эта статья дает представление о том, что такое Windows Forms, рассматривая ее от модели программирования до Microsoft Intermediate Language и JIT-транслятора.

Вы уже много слышали, что Microsoft .NET — новая платформа, которая основана на Windows. Это целая новая парадигма программирования, которая изменит путь, которым вы сейчас думаете о написании программ для Windows. Она реализована на библиотеке классов .NET Framework class library и содержит более единую модель программирования, улучшенную защиту и более богатые возможности для написания полнофункциональных веб-приложений. И это только начало.

Windows Forms — одна из наиболее интересных возможностей Microsoft .NET. Если вы знакомы с MFC (или Windows API), то Windows Forms хорошее начало для работы с .NET Framework class library, потому что она позволяет писать традиционные GUI приложения с окнами, формами и т.п. вещами. Однажды, начав работать с Windows Forms вы сможете быстро понять .NET Framework.

Главная выгода от написания Windows-приложений с использованием Windows Forms — это то, что Windows Forms гомогенизируют (создают более однородную (гомогенную) структуру) программную модель и устраняют многие ошибки и противоречия от использования Windows API. Например, каждый опытный программист под Windows знает, что некоторые стили окна могут применяться только к окну, когда оно уже создано. Windows Forms в значительной степени устраняют такое противоречие. Если вы хотите существующему окну задать стиль, который может быть присвоен только в момент создания окна, то Windows Forms спокойно уничтожит окно и вновь создаст его с указанным стилем. Кроме того, .NET Framework class library намного более богаче, чем Windows API, и когда вы будете писать приложения, используя Windows Forms, вы получите в распоряжение больше возможностей. Написание приложения с использованием Windows Forms потребует меньшего количества кода, чем приложения, которые используют Windows API или MFC.

Другая выгода от Windows Forms — вы используете тот же самый API, независимо от языка программирования, который вы выбрали. В прошлом, выбор языка программирования управлял выбором API. Если вы программировали в Visual Basic, вы использовали один API (реализованный на языке Visual Basic), в то время как программисты C использовали Win32 API, а программисты C++, вообще говоря, использовали MFC. MFC-программисту было трудно переключиться на Visual Basic и наоборот. Но теперь такого больше нет. Все приложения, которые используют Windows Forms, используют один API из .NET Framework class library. Знание одного API достаточно позволит программисту писать приложения фактически на любом языке, который он выберет.

Windows Forms ни как не меньше, чем современная модель программирования для GUI приложений. В отличие от модели программирования Win32, в которой многое идет еще от Windows 1.0, новая модель была разработана с учетом всех современных требований. Цель этой статьи состоит в том, чтобы познакомить читателя с моделью программирования Windows Forms. Чтобы компилировать и выполнять примеры кода, приведенного далее, на вашем компьютере должнен быть установлен пакет Microsoft .NET Framework SDK (.NET Framework SDK Beta 1 доступен на сайте Microsoft).

Модель программирования Windows Forms

В Windows Forms термин «форма» — синоним окна верхнего уровня. Главное окно приложения — форма. Любые другие окна верхнего уровня, которые имеет приложение — также формы. Окна диалога также считаются формами. Несмотря на название, приложения, использующие Windows Forms, не выглядят как формы. Подобно традиционным Windows-приложениям приложения осуществляют полный контроль над событиями в собственных окнах.

Программисты видят Microsoft .NET через линзу .NET Framework class library. Представьте MFC на порядок больше и вы получите точную картину о ширине и глубине .NET Framework class library. Чтобы облегчить противоречия в обозначениях и придать организацию многим сотням классов, .NET Framework class library разбита на иерархические разделы по именам. Корневой раздел, System, определяет фундаментальные типы данных, используемые всеми приложениями .NET.

Читать еще:  Программирование для виндовс

Приложения, использующие Windows Forms используют классы System.WinForms. Этот раздел включает такие классы, как Form, который моделирует поведение окон или форм; Menu, который представляет меню; Clipboard, который дает возможность приложениям Windows Forms использовать буфер обмена. Он также содержит многочисленные классы, предоставляющие средства управления, например: Button, TextBox, ListView, MonthCalendar и т.д. Эти классы могут быть включены в приложение либо с использованием только имени класса, либо с использованием полного имени, например: System.WinForms.Button.

В основе почти каждого приложения, написанного с применением Windows Forms, — производный класс от System.WinForms.Form. Образец этого класса представляет главное окно приложения. System.WinForms.Form имеет множество свойств и методов, которые имеют богатый программный интерфейс к формам. Хотите знать размеры клиентской области формы? В Windows вы вызвали бы функцию API GetClientRect. В Windows Forms нужно использовать свойства ClientRectangle или ClientSize.

Приложения, основанные на Windows Forms, которые используют кнопки, списки и другие типы компонентов Windows, используют классы управления System.WinForms, значительно упрощающие программирование управления. Хотите создать стилизованную кнопку с изображением в виде фона? Нет проблем. Включите требуемое изображение в объект System.Drawing.Bitmap и назначьте его свойству кнопки BackgroundImage. Как насчет управления цветом? Вы когда-либо пробовали настраивать цвет фона текстового поля? В Windows Forms это просто: нужно просто присвоить цвет свойству BackColor, все отстальное система сделает сама.

Другой важный «строительный» блок приложения, который использует Windows Forms — класс System.WinForms по имени Application. Этот класс содержит статический метод Run, который загружает приложение и отображает окно.

Вы скажете: если приложения, которые являются Windows Forms, не обрабатывают сообщения, как они отвечают на пользовательский ввод или знают когда рисовать? Много классов имеют виртуальные методы, которые можно переопределить. Например, System.WinForms.Form содержит виртуальный метод OnPaint, который вызывается когда клиентская область формы нуждается в обновлении. OnPaint — один из многих виртуальных методов, который можно переопределить в производном классе для формирования интерактивных форм.

Другая важная грань модели программирования Windows Forms — механизм, который формы используют для ответа на ввод в меню, средств управления и других элементов GUI приложения. Традиционные Windows-приложения обрабатывают сообщения WM_COMMAND и WM_NOTIFY используя события процесса Windows Forms. В C# и на других языках, которые поддерживают .NET Common Language Runtime (CLR), события — члены типа первого класса наравне с методами, полями и свойствами. Фактически все управляющие классы (control classes) Windows Forms (а также и многие неуправляющие классы) создают события. Например, кнопка (экземпляр System.WinForms.Button) после нажатия создает событие Click. Форма, которая должна ответить на нажатие кнопки может использовать следующий код, чтобы соединить кнопку на обработчиком события Click:

EventHandler — специальный обработчик событий, который выполняет метод OnButtonClicked когда MyButton создает событие Click. Первый параметр OnButtonClicked идентифицирует объект, который вызвал событие. Второй параметр в основном бессмысленен для события Click, но используется некоторым другие типами событий, чтобы передать дополнительную информацию.

Приложение «Hello World» с Windows Forms

Самый простой способ начать изучение новой платформы — создание приложения «Hello World». В Листинге 1 показана версия, созданная при помощи Windows Forms. Все примеры в этой статье написаны на C#, но вы можете писать приложения Windows Forms на любом языке, для которого есть компилятор .NET. Сегодня это: C#, Visual Basic, JScript и C++.

Начнем сначала. Слово «using» вверху файла позволяют сослаться на классы в пакетах System, System.WinForms и System.Drawing. Например,

В приложении, использующем Windows Forms, каждое окно — или форма — представлено экземпляром класса, производного от System.WinForms.Form (Листинг 1 — класс MyForm). Конструктор MyForm устанавливает текст заголовка формы «Windows Forms Demo» используя свойство Text. Text — одно из более чем 100 свойств, которые форма наследует от System.WinForms.Form, но пока единственное, в котором вы нуждаетесь.

Как вы знаете, окна получают сообщения WM_PAINT и большинство перерисовок экрана выполнено в ответ на эти сообщения. В Windows Forms эквивалент сообщения WM_PAINT — виртуальный метод по имени OnPaint. Производный класс формы может переопределить этот метод в случае надобности выполнять собственную перерисовку в ответ на сообщения WM_PAINT.

Обратите внимание на ключевое слово в Листинге 1, которое компилятор C# интерпретирует как подтверждение, что вы хотите переопределить виртуальный метод, унаследованный от базового класса. Перопределенный OnPaint записывает «Hello, world» в клиентской области формы. OnPaint вызывает объект PaintEventArgs (System.WinForms.PaintEventArgs), который содержит свойства Graphics и ClipRectangle. Свойство Graphics ссылается к объекту Graphics (System.Drawing.Graphics), который является эквивалентом контекста устройства (device context) в Windows Forms. ClipRectangle производное объекта Rectangle (System.Drawing.Rectangle), который описывает какая часть формы является недопустимой.

Метод OnPaint из MyForm использует Graphics.DrawString, чтобы выполнить вывод на экран. Первый параметр DrawString — непосредственно само сообщение (строка) «Hello, world». Второй — объект Font (System.Drawing.Font), который описывает шрифт для вывода текста. MyForm.OnPaint использует шрифт формы (которой установлен в свойстве Font формы). Третий параметр — Brush (System.Drawing.Brush) — объектное определение цвета текста. Четвертый и заключительный параметр — прямоугольник области, куда требуется вписать текст.

Заключительная часть MyForm — статический метод Main. Main — точка входа в приложение. Каждое приложение .NET должно иметь этот метод. Main может быть объявлен любым из следующих способов:

Параметр args метода Main — строковый массив параметров командной строки (задаваемых при вызове программы). Элемент args[0] хранит первый параметр командной строки, args[1] — второй и т.д. Как правило, в каждом приложении метод Main выполняется только однажды (компилятор Microsoft C# допускает использование ключа /main, указывающего в каком классе содержится метод Main, если приложение имеет несколько классов с методами Main). Main может находиться в любом классе, определенном в приложении.

Отображение нашей формы на экране — простой пример выполнения MyForm и передачи действия Application.Run. Application — другой класс, определенный в System.WinForms. Метод Run создает форму, отображает ее на экране и обрабатывает сообщения к ней. Следующая инструкция в Листинге 1

обрабатывает MyForm и показывает форму.

Сохраните текст программного кода (Листинг 1) в файле Hello.cs и откомпилируйте его. Чтобы это сделать, откройте окно командной строки, перейдите в каталог файла Hello.cs и введите:

Команда csc вызывает компилятор Microsoft C#. «Hello.cs» указывает на файл, который требуется откомпилировать. Ключ «/target:winexe» сообщает компилятору, что нужно создать GUI-приложение для Windows, а «/out:Hello.exe» задает имя файла программы (этот ключ можно опустить, т.к. в данном случае по умолчанию все равно будет создан Hello.exe, т.к. CS-файл назван Hello.cs). Ключи «/reference» указывают ссылки на внешние классы, например, для System.WinForms.Form и System.Drawing.Size. Для краткости допускается заменять «/target» и «/reference» на «/t» и «/r».

Hello.exe не обычный EXE-файл, это .NET-программа, содержащая следующие важные элементы:

  • Microsoft Intermediate Language (MSIL), сгенерированный при помощи C#
  • Метаданные, описывающие типы (классы), определенные в приложении, и типы (например, System.WinForms.Form), на которые ссылается приложение, находящиеся в другом месте (например, в MsCorLib.dll и System.WinForms.dll)
  • Декларация, описывающая требуемые файлы для сборки приложения

В языке .NET, сборка — это коллекция из одного или более файлов, создающих модуль. Наша сборка содержит только один файл — Hello.exe — и этот факт отмечен в декларации внутри выполнимой программы. Декларация физически сохранена как часть метаданных. Каждая управляемая выполнимая программа — это есть любой PE-файл, который содержит MSIL — часть сборки и каждая управляемая выполнимая программа имеет метаданные внутри. Один из файлов в .NET-сборке содержит декларацию идентификации файлов, которые должны быть включены при сборке и общедоступные типы. Компилятор C# производит всю необходимую инфраструктуру.

Теперь когда вы откомпилировали Hello.exe, можете набрать в командной строке:

Посмотрите на рис.1, чтобы увидеть результат работы нашей программы.

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector