Краткие теоретические положения




Цель работы

Изучить основные способы работы с формами в Visual Studio.NET; изучить возможности использования простейших визуальных компонентов в программах на языке Visual С++.

Краткие теоретические положения

Работа с формами. Основным компонентом среды визуального программирования является форма (Form). Форма – это контейнер, в который помещаются остальные элементы приложения, определяющие впоследствии всю функциональность приложения. В форме можно разместить различные визуальные компоненты (элементы управления), такие как кнопка, текстовое поле для ввода данных, список, поле со списком и т.д. Для работы формами используется дизайнер форм.

При создании нового проекта типа Windows Forms Application автоматически создается форма Form1. Вместе с ней создается специальный программный модуль с именем формы и расширением.h (Form1.h). В этом модуле находится описание формы и в нем же будут располагаться обработчики событий компонентов.

Организация работы с множеством форм. В общем случае приложение может иметь много форм. Первая форма, добавляемая в проект, автоматически получает имя Form1. Вторая и последующие формы могут быть добавлены с помощью команд меню Project | Add New Item (в диалоговом окне в этом случае необходимо выбрать Visual C++ | UI | Windows Form). Результат добавления формы отображается в окне Solution Explorer. Для редактирования новых форм также используется дизайнер форм. Для переключения между редактируемыми формами можно щелкнуть по соответствующей вкладке (например, Form2.h[Design]) или выбрать нужную форму в окне Solution Explorer.

Формы, которые только добавлены в проект, не выводятся на экран при запуске проекта на выполнение. При выполнении приложения формы надо принудительно вызывать.

Для того, чтобы указать форму, которую следует загружать первой при запуске приложения, необходимо указать ее в поле Startup Object, находящемся в разделе Application диалогового окна Property Pages из меню Project | Property.

Форма может быть отображена в двух режимах: модальном или немодальном (обычном). Разница между ними в следующем. Модальное окно диалога (modal dialog box) или форма должны быть закрыты, чтобы можно было продолжать работу с приложением. Например, диалоговые окна, отображающие важные сообщения, всегда должны быть модальными, то есть пользователь обязан закрывать их или отвечать на сообщения в них, прежде чем продолжить работу. Немодальные окна диалога (modeless dialog boxes) или формы позволяют перемещать фокус между окном диалога и другой формой, не закрывая окно диалога. Немодальные окна диалога достаточно редки.

Чтобы отобразить форму как модальное окно диалога, следует использовать метод ShowDialog() формы. Чтобы отобразить форму в немодальном режиме, следует использовать метод Show(), например:

Form2->Show();

Основные свойства формы. Д ля формы и других компонентов характерно наличие свойств и событий. Свойства служат двум главным целям. Во-первых, они определяют внешний вид формы или компонента. А во-вторых, свойства определяют поведение формы или компонента. Visual Studio позволяет изменять свойства компонентов как в режиме проектирования (design time), так и в режиме выполнения программы (run time).

Рассмотрим некоторые свойства форм (многие из этих свойств встречаются также и у компонентов, с которыми мы будем работать).

AllowDrop – свойство определяет возможность вывода у себя данных, когда пользователь перемещает их над этим компонентом.

AutoScaleMode – это свойство задает возможность автоматического масштабирования. Значение свойства выбирается из выпадающего списка. Если выбрать значение Font, то автоматическое изменение шрифта будет полезным тогда, когда форма или компонент должны растягиваться или сокращаться в соответствии с размерами с размерами шрифта в операционной системе. Если выбрано значение DPI, то размеры формы или компонента будут изменяться относительно экрана. Если выбрать значение Inherit, то другой компьютер станет наследовать шрифт и разрешение базового компьютера.

AutoScroll – это свойство задает возможность автоматического появления полос прокрутки.

AutoScrollMargin – ширина полос прокрутки (при необходимости) в пикселах.

AutoSize – возможность автоматического изменения размеров.

AutoSizeMode – режим автоматического изменения размеров. Возможные значение: GrowOnly (только растягиваться), GrowAndShrink (растягивать и уменьшаться).

BackColor – цвет фона.

BackgroundImage – фоновое изображение.

BackgroundImageLayout – тип размещения фонового изображения: подгонять под размер компонента, растягивать и др.

CancеlButton – это свойство позволяет создавать имитацию нажатию некоторой кнопки с помощью клавиши ESC в момент работы приложения. При нажатии ESC приложение будет выполнять такое же действие, как будто пользователь щелкнул по указанной кнопке.

CausesValidation – включает/выключает необходимость проверки на достоверность компонента во время получения им фокуса. Это свойство подавляет или не подавляет возникновение события Validating.

ContextMenuStrip – через это свойство к компоненту подключается его контекстное меню.

ControlBox – предоставляет возможность вывода в различном виде заголовочной полосы формы (с кнопочками (True) или без (False)).

Cursor – задает форму курсора мыши для формы или компонента.

Enabled – задает возможность доступа к компоненту.

Font – определяет характеристики шрифта формы или компонента.

ForeColor – цвет переднего плана компонента.

FormBorderStyle – задает стиль окантовки формы, который выбирается из выпадающего списка. По умолчанию имеет значение Sizable – форма может изменять свои размеры в режиме выполнения.

HelpButton – задает возможность вывода кнопки помощи (с вопросительным знаком) в заголовке компонента. Обработка кнопки помощи определяется в обработчике события HelpRequested формы или компонента.

Icon – определяет пиктограмму приложения.

ImeMode – Input Method Editor – подключает к компоненту редактор с различными режимами обработки входных данных.

IsMdiContainer – показывает, является ли форма контейнером для многодокументного интерфейса.

Locked – блокировка компонента. В результате блокировки компонент теряет возможность перемещаться или изменять размеры. При этом в левом верхнем углу компонента появляется пиктограмма замка.

MainMenuStrip – через это свойство к компоненту подключается главное меню.

Opacity – задает уровень затемнения (прозрачности) формы. Значение указывается в процентах. Чем ниже процент, тем более прозрачна форма.

Padding – задает отступы внутри компонента и определяет пространство внутри компонента, которое «держит» на заданной дистанции от границ компонента содержимое компонента.

Size – размеры компонента.

SizeGripStyle – это свойство позволяет задать вывод/невывод калибровочной полоски в правом нижнем углу формы.

StartPosition – задает стартовую позицию формы в режиме исполнения приложения, например, по центру экрана (CenterScreen).

Tag – нечто вроде буферной области, связанной с компонентом. Это свойство позволяет сохранять какие-нибудь данные, чтобы потом ими воспользоваться.

Text – заголовок компонента.

TopMost – определяет, будет ли данная форма всегда помещена над другой.

TransparencyKey – цвет, которым будут высвечиваться прозрачные области формы.

UseWaitCursor – определяет, будет ли использоваться курсор в виде песочных часов для данного компонента и всех его потомков или нет.

WindowState – состояние окна формы.

Некоторые события формы. Как известно, событие – действие, вызывающее реакцию объекта, например, нажатие клавиши на клавиатуре или кнопки мыши. С помощью свойств, связанных с событиями, можно указать, что при возникновении события следует выполнить определенную функцию обработки событий. Рассмотрим некоторые события формы.

Activated – возникает, когда форма активизируется.

Click – возникает при щелчке мышью по форме.

ControlAdded – возникает, когда в форму добавлен новый элемент управления (во время выполнения приложения).

DoubleClick – возникает, когда произведен двойной щелчок мышью по форме.

FormClosed – возникает после закрытия формы.

FormClosing – возникает перед закрытием формы.

HelpButtonClicked – возникает после щелчка на кнопке HelpButton.

HelpRequested – возникает при нажатии на кнопке F1.

Load – возникает перед первым выводом формы.

Paint – возникает, когда форма перерисовывается.

Заготовка обработчика события формируется следующим образом: надо открыть вкладку Events (события) в окне Properties, выбрать нужное событие (например, Click) и дважды щелкнуть мышкой в поле этого события. Среда программирования сразу создает в h-файле формы заготовку: заголовок функции, которая должна будет выполняться, как только наступит соответствующее событие, и пустое тело функции (открывающую и закрывающую фигурные скобки), в которое мы должны вписать свои инструкции на С++, отражающие алгоритм реакции на событие.

Некоторые методы формы. Метод – функция, внедренная непосредственно в объект. Форма имеет большое количество методов, которые можно просмотреть, нажав комбинацию клавиш <Ctrl> + <F1>. При этом откроется окно Dynamic Help, в котором надо выбрать строку Form Members. В разделе Form Members справочной системы перечислены не только методы, но и все свойства и события формы. Рассмотрим некоторые методы формы.

Close() – закрывает форму. Если закрывается главная форма, приложение закрывается. Ресурсы, занятые формой, освобождаются.

Hide() – форма становится невидимой.

Show() – выводит форму на экран.

ShowDialog() – показывает форму в модальном режиме.

Focus() – передает фокус форме или компоненту (делает форму активной).

Компоненты. Компоненты, размещаемые в форме, позволяют пользователю программы выполнять различные действия, например, щелкать на кнопках или вводить данные. Рассмотрим наиболее часто используемые элементы управления, размещенные на панели Toolbox.

Button – прямоугольная кнопка с надписью. Поместив Button на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом. Вот основные свойства элемента управления Button: Left (позиция элемента управления относительно левого края его контейнера), Top (позиция элемента относительно верхнего края его контейнера), Height (высота), Width (ширина), Enabled (определяет, можно ли пользователю работать с этим элементом управления), Visible (видимость во время выполнения программы), Text (подпись).

Все указанные свойства можно менять как во время разработки программы, так и во время ее работы. Чтобы изменить свойства кнопки во время работы программы, необходимо в процедуре использовать команду вида:

НазваниеЭлемента->НазваниеСвойства = НовоеЗначение

Например, если в форме имеется кнопка cmd1, то можно изменить ее свойства следующим образом:

cmd1->Text = “Нажми на меня”;

cmd1->Left = 200;

При этом новое значение для свойства Text указывается в кавычках, так как оно имеет тип String, а для свойства Left – без кавычек, так как оно имеет числовой тип.

Label служит для отображения текста на экране. Вы можете изменить шрифт и цвет надписи, если щелкнете на кнопке с троеточием в строке Font в окне Properties. Текст надписи является значением свойства Text. Свойство TextAlign определяет способ выравнивания текста. Вывести текст в надпись во время работы программы можно, например, так:

Label1->Text = "Введите число:";

TextBox - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы. Начальное содержимое области редактирования определяет строка, являющаяся значением свойства Text. Свойство Font определяет параметры шрифта текстового поля. Установив свойство ReadOnly в значение True, мы запрещаем пользователю программы вводить данные в текстовое поле. Свойство MaxLength определяет число символов, которые можно ввести в текстовое поле. Свойство SelectedText содержит текущий выделенный фрагмент строки в текстовом поле. Свойства SelectionStart, SelectionLength возвращают начальную позицию и длину выделенного фрагмента строки в текстовом поле. Свойство MultiLine позволяет установить возможность вывода текста в несколько строк. Свойство TextAlign определяет способ выравнивания текста.

Событие TextChanged возникает при вводе и изменении данных в тектовом поле. Можно использовать процедуру обработки этого события, чтобы обрабатывать данные, вводимые пользователем. Пример процедуры обработки события TextChanged:

private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e)

{lblResult->Text = textBox1->Text;

}

RichTextBox – отображает прямоугольную область редактируемого текста на форме. Похож на TextBox, но может содержать несколько абзацев, а также форматирование разным цветом, шрифтами и др. Имеет свойство Text. Начальное содержимое области редактирования также определяет массив строк, являющийся значением свойства Lines. Окно редактора элементов списка открывается кнопкой в графе значении этого свойства. Позволяет загружать данные из файла и сохранять в файл, используя методы LoadFile и SaveFile.

Элементы управления CheckBox и RadioButton часто используются при программировании. CheckBox – это флажок для включения или отключения опций, а RadioButton – переключатель, который позволяет выбирать один элемент из группы.

Основные свойства элементов управления CheckBox и RadioButton: Name – имя элемента; Text – подпись; Checked – признак того, что элемент выбран; Left, Top – определяет положение элемента; Height, Width – задают размеры элемента. Свойство Checked для компонентов CheckBox и RadioButton равно True, если переключатель выбран и False, если элемент не выбран.

PictureBox – окно рисунка. Мы будем изучать особенности использования элемента PictureBox чуть позже.

Списки (ListBox) и поля со списками (ComboBox) используются для предоставления пользователю возможности выбора нужной информации. Оба элемента управления имеют свойство Items – коллекцию, состоящую из всех элементов списка. Элементы списков нумеруются с нуля. Основные действия при работе со списками и полями со списком заключаются в добавлении и удалении строк в свойстве Items этих элементов управления.

Timer – таймер (позволяет программе выполнять действия в реальном времени без вмешательства пользователя). Вызываемое таймером событие называется Tick. Элемент управления Timer является невидимым. Время между наступлением событий Timer должно указываться в свойстве Interval элемента управления таймером. Единицей измерения интервала времени является миллисекунда.

Для добавления в формы проекта различных компонентов используется панель ToolBox. Доступ к ней можно получить с помощью меню View | Toolbox.

 

Задание на работу

1. Разработать приложение «Калькулятор» по инструкциям, приведенным в пункте «Порядок выполнения работы».

2. Разработать приложение по своему варианту.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: