ІІІ. Изучение диалоговых окон.

1. Создайте приложение TestDialogs.

2. На главной форме проекта разместить компонент RichTextBox, полосу главного меню (используя Insert Standard Items), и панель инструментов toolStrip, на которой дублируются пункты меню:

Рис. 6. Пример формы

3. Для работы с файловыми потоками в коде формы blank подключаем пространство имен System.IO:

using System.IO;

4. Перетащите на форму OpenFileDialog и приведите к виду: Рис.7. Свойства OpenFileDialog5. В обработчике события нажатия соответствующего пункта меню прописать:

OpenFileDialog fd = new OpenFileDialog();

fd.Filter = "Text format (*.txt)|*.txt|Rich Text (*.rtf)|*.rtf";

if (fd.ShowDialog() == DialogResult.OK)

{

// если выбрали текст

if (fd.FilterIndex == 1)

richTextBox1.LoadFile(fd.FileName, RichTextBoxStreamType.PlainText);

else

richTextBox1.LoadFile(fd.FileName, RichTextBoxStreamType.RichText);

}

6. В обработчике события для SaveFileDialog:

SaveFileDialog fd = new SaveFileDialog();

fd.Filter = "Text format (*.txt)|*.txt|Rich Text (*.rtf)|*.rtf";

if (fd.ShowDialog() == DialogResult.OK)

{

// если выбрали текст

if (fd.FilterIndex == 1)

richTextBox1.SaveFile(fd.FileName, RichTextBoxStreamType.PlainText);

else

richTextBox1.SaveFile(fd.FileName, RichTextBoxStreamType.RichText);

}

7. По аналогии создать обработчики диалогов ColorDialog и FontDialog:

ColorDialog d = new ColorDialog();

if (d.ShowDialog() == DialogResult.OK)

{

richTextBox1.SelectionColor = d.Color;

}

FontDialog d = new FontDialog();

if (d.ShowDialog() == DialogResult.OK)

{

richTextBox1.SelectionFont = d.Font;

}

8. В обработчике события закрытия формы:

private void Form1_FormClosing(object sender,

FormClosingEventArgs e)

{

if ( MessageBox.Show("Вы уверены ?", "Вопрос",

MessageBoxButtons.YesNo

, MessageBoxIcon.Question

, MessageBoxDefaultButton.Button2

)

!= DialogResult.Yes

)

{

e.Cancel = true;

}

}

Теоретические сведения:

Иерархия классов. Понятие класса управляющих элементов.

Важность понимания иерархии становится очевидной в процессе проектирования и конструирования пользовательских элементов управления.

Класс Control

Пространство имен System.Windows.Forms включает один класс, который является базовым почти для всех элементов управления и форм System.Windows.Forms.Control (см. рис.1). Он реализует основную функциональность для создания экранов, которые видит пользователь. Класс Control унаследован от класса System.ComponentModel.Component. Класс Component обеспечивает классу Control инфраструктуру, необходимую для того, чтобы его можно было перетаскивать и помещать на поле конструктора, а также, чтобы он мог включать в себя другие элементы управления.

Класс Control предлагает огромный объем функциональности классам, наследуемым от него. Рассмотрим методы и свойства по их функциональности:

· размер и положение (табл. 1);

· внешний вид (табл. 2);

· взаимодействие с пользователем (табл. 3);

· функциональность Windows (табл. 4);

· прочая функциональность (табл. 5).

Рис. 1. Иерархия классов в пространстве имен System.Windows.Forms.Control. Таблица 1. Размер и положение

Свойства Dock Позволяет делать управляющий элемент прилегающим к краям окна
Anchor С помощью этого свойства можно определять каким образом будет вести себя управляющий элемент при изменении размеров своего контейнера
Height Определяет расстояние от верхнего до нижнего края управляющего элемента
Width Определяет ширину управляющего элемента
Right Определяет положение правого края управляющего элемента относительно правого края окна
Left Определяет положение левого края управляющего элемента относительно левого края окна
Bottom Задавая значение этого свойства, можно определить расстояние от верха окна до нижней части управляющего элемента.
Top Определяет положение верхнего края управляющего элемента относительно верхнего края окна
Size
Методы PointToClient
PointToScreen



Таблица 2. Внешний вид

Свойства ForeColor Определяет цвет управляющего элемента
BackColor Определяет цвет фона управляющего элемента
BackGroundImage
BackgroundImage Layout
Font
Text

Таблица 3. Взаимодействие с пользователем

События Click Наступает в том случае, когда происходит щелчок мышью на управляющем элементе (аналогично при нажатии Enter)
DoubleClick Наступает в том случае, когда на управляющий элемент происходит двойной щелчок мышью. Использование события Click для некоторых управляющих элементов таких как Button означает, что событие DoubleClick никогда не будет вызываться
MouseDown Возникает в тот момент, когда курсор мышки находится на управляющем элементе а кнопка находится в нажатом состоянии. Отличается от Click тем, что возникает после нажатия до отпускания кнопки мыши
MouseUp Возникает в тот момент, когда курсор находится на управляющем элементе, а кнопка мыши отпущена
MouseEnter
MouseLeave
MouseHover
KeyDown Наступает в момент нажатия клавиши, в том случае если управляющий элемент находится в фокусе. Это событие предшествует KeyPress и KeyUp
KeyPress Наступает в момент нажатия клавиши, в том случае, если управляющий элемент находится в фокусе. Разница между KeyPress и KeyDown заключается в том, что KeyDown передает код нажатой клавиши, в то время как KeyPress передает значение типа char соответствующее нажатой клавише.
KeyUp Наступает в момент, когда клавиша отпускается, в случае, если управляющий элемент находится в фокусе.
Validating
Paint
Validating
Validated
Enter
Leave
GotFocus Возникает когда управляющий элемент оказывается в фокусе.
LostFocus Возникает когда управляющий элемент оказывается вне фокуса.
DragDrop Наступает, когда завершается процедура переноса мышью, а точнее, когда объект перенесен мышью на управляющий элемент и пользователь отпускает клавишу мыши
Свойство KeyCode
Modiffers
KeyValue
KeyData
Handled

Таблица 4. Функциональность Windows

Свойства Handle
IsHandleCreated. Handle
HWnd
LParam
WParam
Msg
Result
Методы WndProc

Таблица 5. Прочая функциональность

Свойства BindingContext
CompanyName
ProductName
ProductVersions
Parent
TabIndex Определяет порядковый номер управляющего элемента для данного контейнера
TabStop Определяет, возможно ли осуществить доступ к данному управляющему элементу с помощью Tab
Visible Определяет является ли управляющий элемент видимым в процессе выполнения.
Методы Invalidate

Toolbox

Окно Toolbox (панель инструментов, View —> Toolbox, или сочетание клавиш Ctrl+Alt+X) содержит компоненты Windows-форм, называемые также элементами управления, которые размещаются на форме. Оно состоит из нескольких закладок: My User, Controls, Components, Data, Windows Forms и General (рис. 2.):

Рис. 2. Окно Toolbox

Наиболее часто употребляемой закладкой является Windows Forms.

Для размещения нужного элемента управления на форму есть несколько способов:

4. Путем выбора в панели инструментов и кликом на форме места, где он будет установлен;

5. путем перетаскивания с панели инструментов

6. Двойным щелчком мыши на выбранном элементе в панели инструментов

с помощью конструктора

Элемент управления TextBox

Элемент управления TextBox (поле ввода) предназначен для хранения текста (одной или нескольких строк). При желании текст в TextBox может быть настроен как "только для чтения", а в правой и нижней части можно поместить полосы прокрутки.

Класс TextBox происходит непосредственно от класса TextBoxBase, обеспечивает общими возможностями как TextBox, так и RichTextBox. Свойства, определенные в TextBoxBase, представлены в таблице 6.

Таблица 6. Свойства TextBoxBase

Свойство Назначение
AcceptsTab Определяет, что будет производиться при нажатии на клавишу Tab: вставка символа табуляции в само поле или переход к другому элементу управления
AutoSize Определяет, будет ли элемент управления автоматически изменять размер при изменении шрифта на нем
BackColor, ForeColor Позволяют получить или установить значение цвета фона и переднего плана
HideSelection Позволяет получить или установить значение, определяющее, будет ли текст в TextBox оставаться выделенным после того, как этот элемент управления будет выведен из фокуса
MaxLength Определяет максимальное количество символов, которое можно будет ввести в TextBox
Modified Позволяет получить или установить значение, определяющее, был ли текст в TextBox изменен пользователем
Multiline Указывает, может ли TextBox содержать несколько строк текста
Readonly Помечает TextBox как "только для чтения"
SelectedText, SelectionLength Содержат выделенный текст (или определенное количество символов) в TextBox
SelectionStart Позволяет получить начало выделенного текста в TextBox
Wordwrap Определяет, будет ли текст в TextBox автоматически переноситься на новую строку при достижении предельной длины строки

В TextBoxBase также определено множество методов: для работы с буфером обмена (Cut, Copy и Paste), отменой ввода (Undo) и прочими возможностями редактирования (Clear, AppendText и т. п.).

Из всех событий, определенных в TextBoxBase, наибольший интерес представляет событие TextChange. Это событие происходит при изменении текста в объекте класса, производном от TextBoxBase. Например, его можно использовать для проверки допустимости вводимых пользователем символов (например, предположим, что пользователь должен вводить в поле только цифры или, наоборот, только буквы).

Свойства, унаследованные от Control и от TextBoxBase, определяют большую часть возможностей TextBox. Свойства представлены в таблице 7.

Таблица 7.2. Свойства, определенные в классе TextBox

Свойство Назначение
AcceptsReturn Позволяет определить, что происходит, когда пользователь при вводе текста нажал на Enter. Варианта два: либо в TextBox начинается новая строка текста, либо активизируется кнопка по умолчанию на форме
CharacterCasing Позволяет получить или установить значение, определяющее, будет ли изменяться регистр вводимых пользователем символов
PasswordChar Позволяет выбрать символ, используемый для отображения вводимых пользователем данных (в поле для ввода пароля)
ScrollBars Позволяет получить или установить значение, определяющее, будут ли в TextBox с несколькими строками присутствовать полосы прокрутки
TextAlign Позволяет определить выравнивание текста в TextBox (используются значения из перечисления HorizontalAlignment)

Значения перечисления HorizontalAlignment представлены в таблице 8.

Таблица 8. Значения перечисления HorizontalAlignment

Значение Описание
Center Выравнивание по центру
Left Выравнивание по левому краю
Right Выравнивание по правому краю

Класс Button

Кнопка (button) - это самый простой из всех элементов управления и при этом наиболее часто используемый. Можно сказать, что кнопка - это возможность принять ввод (щелчок кнопкой мыши или набор на клавиатуре) наиболее простым способом. Непосредственный предок класса System.Windows.FormButton в иерархии классов .NET - это класс ButtonBase, обеспечивающий общие возможности для целой группы производных от него элементов управления (таких как Button, CheckBox и RadioButton). Некоторые свойства ButtonBase представлены в таблице 9.

Таблица 9. Свойства ButtonBase

Свойство Назначение
FlatStyle Позволяет настроить "рельефность" кнопки. Используются значения из перечисления FlatStyle
Image Позволяет задать изображение, которое будет выводиться на кнопке (при этом можно указать точное местонахождение изображения). Фоновый рисунок лучше настраивать при помощи свойства BackgroundImage, определенного в базовом классе Control
ImageAlign Позволяет определить выравнивание изображения, размещенного на кнопке. Используются значения из перечисления ContentAhgnment
Imagelndex, ImageList Эти свойства используются для работы с набором изображений (объектом ImageList), выводимых на кнопке
IsDefault Определяет, будет ли эта кнопка являться кнопкой по умолчанию (то есть срабатывать при нажатии на Enter)
TextAlign Позволяет получить или установить выравнивание текста на кнопке. Также используются значения из перечисления ContentAlignment

Сам класс Button не определяет каких-либо дополнительных возможностей помимо унаследованных от ButtonBase, за единственным, но существенным исключением свойства DialogResult. Это свойство позволяет возвращать значение при закрытии диалогового окна, например, при нажатии кнопок ОК или Cancel (Отменить).

В подавляющем большинстве случаев выравнивание текста, размещенного на кнопке, производится по центру, так что текст будет размещен строго посередине кнопки. Однако если нам по каким-то причинам необходимо использовать другой стиль выравнивания, в нашем распоряжении - свойство TextAlign, определенное в классе ButtonBase. Для TextAlign используются значения из перечисления ContentAlignment (таблица 10). Значения из того же перечисления используются и для определения положения изображения на кнопке.

Таблица 10. Значения перечисления ContentAlignment

Значение Описание (выравнивание)
BottomCenter По нижнему краю кнопки, относительно боковых краев - посередине
BottomLeft Но нижнему краю кнопки, слева
BottomRight По нижнему краю кнопки, справа
MiddleCenter По центру кнопки
MiddleLeft Относительно верхнего и нижнего краев - по центру, относительно боковых краев - слева
MiddleRight Относительно верхнего и нижнего краев - по центру, относительно боковых краев - справа
TopCenter По верхнему краю кнопки, относительно боковых краев - посередине
TopLeft По верхнему краю кнопки, слева
TopRight По верхнему краю кнопки, справа

Элемент управления CheckBox

Для флажка (тип CheckBox) предусмотрено три возможных состояния. Как и тип Button, CheckBox наследует большую часть своих возможностей от базовых классов Control и ButtonBase. Однако в этом классе существуют и свои собственные члены, обеспечивающие дополнительные уникальные возможности. Наиболее важные свойства CheckBox представлены в таблице 11.

Таблица 11. Свойства класса CheckBox

Свойство Назначение
Appearance Настраивает вид флажка. Для этого свойства используются значения из перечисления Appearance
AutoCheck Позволяет получить или установить значение, определяющее, будут ли значения Checked и CheckState, а также внешний вид флажка автоматически изменяться при щелчке на нем
CheckAlign Позволяет установить горизонтальное и вертикальное выравнивание собственно флажка (квадратика) в элементе управления CheckBox. Используются значения из перечисления ContentAhgnment
Checked Возвращает значение типа bool, представляющее текущее состояние флажка (выбран или не выбран) Если для свойства ThreeState установлено значение true, то свойство Checked будет возвращать true как для явно выбранного флажка, так и для того флажка, для которого установлено значение "не определено" (indeterminate)
CheckState Позволяет получить или установить значение флажка (установлен - не установлен - не определено), используя не true и false, как в Checked, а три значения из перечисления CheckState. Обычно используется, если свойство ThreeState для флажка имеет значение true (то есть он допускает три значения).
ThreeState Определяет, будут ли для флажка использоваться три значения (из перечисления CheckState) или только два

Возможные состояния флажка (Indeterminate можно использовать только тогда, когда для свойства ThreeState установлено значение true) представлены в таблице 12.

Таблица 12 Значения перечисления CheckState

Значение Описание
Checked Флажок установлен
Indeterminate Значение не определено (обычно флажок выглядит как "серый", затененный)
Unchecked Флажок снят

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




68554824.html
69554824.html
70554824.html
71554824.html
72554824.html
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
Учебная работа
    PR.RU™