c# desktop. Занятие 08

35
Темы лекции: Windows Forms. Практическое задание: Приложение Windows Forms. Тренер: Игорь Шкулипа, к.т.н. Платформа .Net и язык программирования C#. Занятие 8

Upload: igor-shkulipa

Post on 15-Apr-2017

126 views

Category:

Education


2 download

TRANSCRIPT

Page 1: C# Desktop. Занятие 08

Темы лекции: Windows Forms.

Практическое задание: Приложение Windows Forms.

Тренер: Игорь Шкулипа, к.т.н.

Платформа .Net и язык программирования C#.

Занятие 8

Page 2: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 2

MVC

Шаблон проектированияMVC разделяет работувеб-приложения на триотдельныефункциональные роли:

• модель данных(model)

• пользовательскийинтерфейс (view)

• управляющуюлогику (controller)

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

Page 3: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 3

MVP

• Модель (model) представляетсобой интерфейс, определяющийданные для отображения илиучаствующие в пользовательскоминтерфейсе иным образом

• Вид (view) - это интерфейс,который отображает данные(модель) и маршрутизируетпользовательские команды (илисобытия) Presenter-у, чтобы тотдействовал над этими данными.

• Presenter действует надмоделью и видом. Он извлекаетданные из хранилища (модели), иформатирует их для отображенияв Виде (view). Так же реализуетобработку событий вида.

Page 4: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 4

MVC vs MVP

Page 5: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 5

Windows Forms

Windows Forms является технологией интеллектуальных клиентов для.NET Framework; это набор управляемых библиотек, обеспечивающихраспространенные задачи приложений, например чтение и запись вфайловую систему. С помощью среды разработки типа Visual Studioможно создавать приложения Windows Forms, которые отображаютинформацию, запрашивают ввод от пользователей и обмениваютсяданными с удаленными компьютерами по сети.

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

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

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

Page 6: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 6

Упрощенная иерархия классов

Среди классов Windows Forms естьобширный набор классов длясоздания сложных графическихпользовательских интерфейсов. Этиклассы можно использовать вприложениях, написанных налюбом языке .NET

Как правило, приложение WindowsForms будет содержит главноеокно, которое реализовано спомощью некоторого классаMyForm, производного от классаForm (Форма).

На рисунке изображена иерархияклассов Windows Forms

Page 7: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 7

Класс Control

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

[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]

[ComVisibleAttribute(true)]

public class Control : Component,

IDropTarget, ISynchronizeInvoke, IWin32Window,

IBindableComponent, IComponent, Idisposable

Чтобы создать собственный класс элементов управления, осуществитенаследование из классов UserControl, Control или из других элементовуправления, предоставляемых в Windows Forms. Дополнительные сведенияо самостоятельно разработанных пользовательских элементах управлениясм. в разделе Разработка пользовательских элементов управления WindowsForms в .NET Framework.

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

Page 8: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 8

Класс Application

Предоставляет статичные методы и свойства для управления приложением,например методы для запуска и остановки приложения, для обработкисообщений Windows и свойства для получения сведений о приложении.Этот класс не наследуется.

public sealed class Application

Класс Application содержит методы для запуска и остановки приложений ипотоков, а также для обработки сообщений Windows:

• Run запускает цикл обработки сообщений приложения в текущемпотоке и при необходимости делает форму видимой.

• Exit или ExitThread останавливает цикл обработки сообщений.

• DoEvents обрабатывает сообщения пока программа в цикле.

• AddMessageFilter добавляет фильтр обработки сообщений.

• IMessageFilter позволяет предотвратить инициацию события ивыполнять особые операции до вызова обработчика событий.

• Этот класс содержит CurrentCulture и CurrentInputLanguage -свойства для получения или задания данных о языке и региональныхпараметрах для текущего потока.

Page 9: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 9

Свойства класса Application

AllowQuitВозвращает значение, указывающее, может ли вызывающий выйти из этого приложения.

CommonAppDataPath Получает путь для данных приложения, являющихся общими для всех пользователей.

CommonAppDataRegistryПолучает раздел реестра для данных приложения, являющихся общими для всех пользователей.

CompanyName Возвращает название компании, связанное с приложением.

CurrentCultureВозвращает или задает сведения о языке и региональных параметрах для текущего потока.

CurrentInputLanguage Получает или задает текущий язык ввода для текущего потока.

ExecutablePathВозвращает путь исполняемого файла, запустившего приложение, включая имя исполняемого файла.

LocalUserAppDataPath Получает путь для данных приложения локального неперемещающегося пользователя.

MessageLoopВозвращает значение, указывающее, существует ли цикл обработки сообщений в этом потоке.

OpenForms Возвращает коллекцию открытых форм, принадлежащих приложению.

ProductName Получает название продукта, связанное с этим приложением.

ProductVersion Возвращает версию продукта, связанное с этим приложением.

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

SafeTopLevelCaptionFormatВозвращает или задает строку форматирования для применения к заголовкам окна верхнего уровня, когда они отображаются с баннером предупреждения.

StartupPathПолучает путь для исполняемого файла, запустившего приложение, не включая исполняемое имя.

UserAppDataPath Получает путь для данных приложения пользователя.

UserAppDataRegistry Получает раздел реестра для данных приложения пользователя.

UseWaitCursorВозвращает или задает, используется ли курсор ожидания для всех открытых форм приложения.

VisualStyleState Возвращает значение, указывающее, как они применяются к окнам приложения.

Page 10: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 10

Пространство имен System.Windows.Forms

Пространство имен System.Windows.Forms предоставляет следующие типы классов:

• Элементы управления, пользовательские элементы управления и формы.Большинство классов в пространстве имен System.Windows.Forms являютсяпроизводными от класса Control. Класс Control предоставляет основныефункциональные возможности для всех элементов управления, отображаемых наформе.

• Меню и панели инструментов. Набор классов, которые позволяют создаватьпользовательские панели инструментов и меню, отличающиеся современнымобликом и поведением.

• Элементы управления. Большое количество классов элементов управления, которыепозволяют создавать пользовательские интерфейсы с расширенными возможностями.

• Макет. Несколько важных классов в Windows Forms помогают контролироватьрасположение элементов управления на отображаемой поверхности, например вформе или элементе управления.

• Данные и привязка данных. Windows Forms обеспечивает расширенную архитектурудля привязывания к таким источникам данных, как базы данных и XML-файлы.

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

• Общие диалоговые окна.

Полный список содержимого System.Windows.Forms можно найти http://msdn.microsoft.com/ru-ru/library/system.windows.forms.aspx

Page 11: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 11

Создание приложения Windows Forms

Page 12: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 12

Новый проект

Page 13: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 13

Панель элементов

Page 14: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 14

Пример. Windows Forms + MVP

Основная форма приложения

Page 15: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 15

Интерфейс IView.

namespace WindowsForms

{

interface IView

{

string GetUser();

string GetPassword();

void UpdateUsers(List<string> users);

void ShowMessage(string message);

event EventHandler<EventArgs> UpdateUserList;

event EventHandler<EventArgs> TryLogin;

}

}

Page 16: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 16

Модельnamespace WindowsForms

{

class Model {

public Dictionary<string, string> UsersAndPasswords { get; set; }

public List<string> Users {

get { return UsersAndPasswords.Keys.ToList<string>(); }

}

public Model() {

UsersAndPasswords = new Dictionary<string, string>();

UsersAndPasswords.Add("User1", "Password1");

UsersAndPasswords.Add("User2", "Password2");

UsersAndPasswords.Add("User3", "Password3");

UsersAndPasswords.Add("User4", "Password4");

UsersAndPasswords.Add("User5", "Password5");

}

public string TryToLogin(string user, string password) {

if (UsersAndPasswords.ContainsKey(user)) {

int index=UsersAndPasswords.Keys.ToList<string>().IndexOf(user);

if (UsersAndPasswords.Values.ToList<string>()[index].Equals(password))

{

return "Login Successful!";

}

}

return "Login Failed.";

}

}

}

Page 17: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 17

Презентерnamespace WindowsForms

{

class Presenter

{

private IView view;

private Model model;

public Presenter(IView newView)

{

view = newView;

model = new Model();

view.UpdateUserList += new EventHandler<EventArgs>(UpdateUsers);

view.TryLogin += new EventHandler<EventArgs>(Login);

}

private void UpdateUsers(object sender, EventArgs e)

{

view.UpdateUsers(model.Users);

}

private void Login(object sender, EventArgs e)

{

string loginResult = model.TryToLogin(view.GetUser(), view.GetPassword());

view.ShowMessage(loginResult);

}

}

}

Page 18: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 18

Класс основной формы

namespace WindowsForms

{

public partial class View : Form, IView {

public View() {

InitializeComponent();

}

string IView.GetUser() { return textBox1.Text; }

string IView.GetPassword() { return maskedTextBox1.Text; }

void IView.UpdateUsers(List<string> users) {

listBox1.Items.Clear();

foreach (var user in users)

listBox1.Items.Add(user.ToString());

}

public void ShowMessage(string message){

MessageBox.Show(message, "Login Result", MessageBoxButtons.OK);

}

private void View_Load(object sender, EventArgs e) {

UpdateUserList(sender, e);

}

private void button1_Click(object sender, EventArgs e) {

TryLogin(sender, e);

}

public event EventHandler<EventArgs> UpdateUserList;

public event EventHandler<EventArgs> TryLogin;

}

}

Page 19: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 19

Автоматический код дизайнера форм

Page 20: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 20

Результат

Page 21: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 21

Основные элементы управления

TextBoxПозволяет пользователю вводить изменяемый текст, состоящий из нескольких строк.

ToolStripTextBoxПозволяет пользователю вводить изменяемый текст, состоящий из нескольких строк.

RichTextBoxСлужит для ввода и отображения текста с форматированием, а также для выполнения с ним различных действий пользователем.

Label Отображает текст, который не может быть изменен пользователем.

ToolStripLabel Отображает текст, который не может быть изменен пользователем.

LinkLabel Позволяет добавлять веб-ссылки в приложения форм Windows Forms.

StatusBarОтображает сведения о состоянии элемента управления, на котором находится фокус.

ToolStripStatusLabelОтображение сведений о состоянии элемента управления, на котором находится фокус.

CheckedListBox Отображает список элементов, рядом с каждым из которых стоит галочка.

ComboBox Отображает данные в раскрывающемся поле со списком.

ToolStripComboBox Отображает данные в раскрывающемся поле со списком.

DomainUpDownОтображает текстовые строки, которые пользователь может просматривать и выделять.

ListBox Отображает список текстовых и графических элементов (значков).

ListView Отображает список элементов со значками наподобие проводника Windows.

NumericUpDown Отображает числа, которые пользователь может просматривать и выделять.

TreeView Отображает иерархию узлов, которые можно разворачивать и сворачивать.

Page 22: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 22

Основные элементы управления

PictureBox Отображает рисунки в формате BMP, GIF, JPEG, метафайлов и значков.

ImageList Отображает рисунки на других элементах управления.

CheckBox Указывает, включено ли какое-либо условие или выключено.

CheckedListBox Отображает список элементов, рядом с каждым из которых стоит флажок.

RadioButtonПредоставление набора как минимум из двух взаимоисключающих вариантов выбора для пользователя.

TrackBarПеремещение по тексту большого объема или наглядная настройка числового параметра.

DateTimePicker Позволяет пользователю выбрать отдельный элемент в списке дат или времени.

MonthCalendarПредоставляет понятный графический интерфейс для просмотра и задания сведений о дате пользователями.

ColorDialogПредоставляет стандартное диалоговое окно для выбора цветов из палитры, а также для добавления в нее дополнительных цветов.

FolderBrowserDialogОтображает интерфейс, который пользователь может просматривать и в котором он может выбирать существующие папки и создавать новые.

FontDialogПредоставляет приложениям шрифты, установленные в системе на текущий момент.

OpenFileDialog Позволяет пользователям открывать файлы в стандартном диалоговом окне.

PageSetupDialog Задает параметры страницы для печати в стандартном диалоговом окне.

PrintDialog Определяет принтер, страницы на печать и другие параметры печати.

PrintDocumentЗадает свойства, описывающие материал на печать, и печатает документ в приложениях Windows.

PrintPreviewControlСлужит для создания собственного компонента или диалогового окна PrintPreview взамен стандартного.

PrintPreviewDialog Отображает документ в том виде, как он будет выглядеть при печати.

SaveFileDialog Определяет сохраняемые файлы и их расположение.

Page 23: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 23

Основные элементы управления

MainMenu Выводит меню во время выполнения.

MenuStrip Выводит меню во время выполнения.

ContextMenuПредоставляет пользователю удобное меню часто используемых команд, применимых к выделенному объекту.

ContextMenuStripПредоставляет пользователю удобное меню часто используемых команд, применимых к выделенному объекту.

ButtonОписание стандартной кнопки, нажимаемой пользователем для выполнения каких-либо действий.

LinkLabel Позволяет добавлять веб-ссылки в приложения форм Windows Forms.

NotifyIconОтображает значки для процессов, которые выполняются в фоновом режиме и не имеют иных пользовательских интерфейсов.

ToolBar Отображает меню и кнопок с точечными рисунками для выполнения команд.

ToolStripПозволяет создавать пользовательские панели инструментов и меню в приложениях Windows Forms.

PanelПредоставляет возможность группировки других элементов по смыслу и их прокрутки.

GroupBox Предоставляет возможность группировки других элементов по смыслу.

TabControl Отображает вкладки, содержащие рисунки и другие элементы управления.

DataGridОтображает данные из набора данных в виде таблицы, позволяет обновлять источник данных.

DataGridViewПредоставляет пользовательский интерфейс для наборов данных ADO.NET, отображение табличных данных, поддержка обновлений источника данных.

Page 24: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 24

Основные элементы управления

HScrollBarПредоставляет возможность перемещения по списку элементов или в тексте большого объема с помощью горизонтальной прокрутки окна приложения или элемента управления.

VScrollBarПредоставляет возможность перемещения по списку элементов или в тексте большого объема с помощью вертикальной прокрутки окна приложения или элемента управления.

ErrorProvider Отображает сведения об ошибке для пользователя в фоновом режиме.

HelpProvider Связывает справочный HTML-файл с приложением Windows.

WebBrowserСодержит веб-страницы и обеспечивает приложению возможности просмотра веб-узлов в Интернете.

BackgroundWorkerПозволяет выполнять длительные операции в фоновом режиме в потоке, отличном от основного потока пользовательского интерфейса приложения.

ProgressBar Графическое отображение процесса выполнения действия.

ToolStripProgressBar Графическое отображение процесса выполнения действия.

SplitContainerПозволяет пользователю изменять размер закрепленного элемента управления.

Timer Вызывает событие через определенные интервалы.

ToolTipОтображение текста при наведении указателя мыши на другие элементы управления.

Page 25: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 25

Свойства System.Windows.Forms.Control

AccessibilityObject Получает объект AccessibleObject, назначенный элементу управления.

AccessibleDefaultActionDescription

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

AccessibleDescriptionВозвращает или задает описание элемента управления, используемогоклиентскими приложениями со специальными возможностями.

AccessibleNameВозвращает или задает имя элемента управления, используемого клиентскимиприложениями со специальными возможностями.

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

AllowDropВозвращает или задает значение, указывающее, может ли элемент управленияпринимать данные, перетаскиваемые в него пользователем.

AnchorВозвращает или задает границы контейнера, с которым связан элементуправления, и определяет способ изменения размеров элемента управленияпри изменении размеров его родительского элемента.

AutoScrollOffsetВозвращает или задает местоположение, в котором выполняется прокруткаэтого элемента управления в ScrollControlIntoView.

AutoSize Инфраструктура. Данное свойство не относится к этому классу.

BackColor Получает или задает цвет фона для элемента управления.

BackgroundImageВозвращает или задает фоновое изображение, выводимое на элементеуправления.

BackgroundImageLayoutПолучает или задает макет фонового изображения в соответствии сперечислением ImageLayout.

BindingContext Возвращает или задает объект BindingContext для элемента управления.

BottomПолучает расстояние (в пикселях) между нижней границей элементауправления и верхней границей клиентской области контейнера.

BoundsВозвращает или задает размер и местоположение (в пикселях) элементауправления, включая его неклиентские элементы, относительно егородительского элемента управления.

Page 26: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 26

Свойства System.Windows.Forms.Control

CanEnableImeПолучает значение, указывающее, можно ли для свойства ImeMode установить активное значение с целью включения поддержки IME.

CanFocusПолучает значение, показывающее, может ли элемент управления получать фокус.

CanRaiseEventsОпределяет, могут ли вызываться события в элементе управления. (Переопределяет Component.CanRaiseEvents.)

CanSelect Получает значение, показывающее, доступен ли элемент управления для выбора.

CaptureВозвращает или задает значение, определяющее, была ли мышь захвачена элементом управления.

CausesValidationВозвращает или задает значение, показывающее, вызывает ли элемент управления выполнение проверки.

CheckForIllegalCrossThreadCalls

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

ClientRectangleПолучает прямоугольник, представляющий клиентскую область элемента управления.

ClientSizeВозвращает или задает высоту и ширину клиентской области элемента управления.

CompanyNameПолучает название организации или имя создателя приложения, содержащего элемент управления.

ContainerВозвращает контейнер IContainer, содержащий компонент Component. (Унаследовано от Component.)

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

ContextMenuВозвращает или задает контекстное меню, сопоставленное с элементом управления.

ContextMenuStripВозвращает или задает объект ContextMenuStrip, сопоставленный с этим элементом управления.

Page 27: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 27

Свойства System.Windows.Forms.Control

ControlsПолучает коллекцию элементов управления, содержащихся в элементе управления.

Created Получает значение, показывающее, был ли создан элемент управления.

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

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

DataBindings Получает привязки данных для этого элемента управления.

DefaultBackColor Получает используемый по умолчанию цвет фона элемента управления.

DefaultCursor Получает или задает курсор по умолчанию для элемента управления.

DefaultFont Получает шрифт элемента управления, используемый по умолчанию.

DefaultForeColorПолучает основной цвет элемента управления, используемый по умолчанию.

DefaultImeModeВозвращает стандартный режим редактора методов ввода, поддерживаемый данным элементом управления.

DefaultMarginПолучает размер пустого пространства (в пикселях), по умолчанию оставляемого между элементами управления.

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

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

DefaultPaddingПолучает внутренние промежутки в содержимом элемента управления в пикселях.

DefaultSize Получает размер элемента управления по умолчанию.

DesignModeВозвращает значение, указывающее, находится ли данный компонент Component в режиме конструктора в настоящее время. (Унаследовано от Component.)

Page 28: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 28

DisplayRectangleПолучает прямоугольник, представляющий отображаемую область элемента управления.

DisposingПолучает значение, указывающее, находится ли базовый класс Control в процессе удаления.

DockВозвращает или задает границы элемента управления, прикрепленные к его родительскому элементу управления, и определяет способ изменения размеров элемента управления с его родительским элементом управления.

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

EnabledВозвращает или задает значение, показывающее, сможет ли элемент управления отвечать на действия пользователя.

EventsВозвращает список обработчиков событий, которые прикреплены к этому объекту Component. (Унаследовано от Component.)

FocusedПолучает значение, показывающее, имеется ли в элементе управления фокус ввода.

Font Возвращает или задает шрифт текста, отображаемого элементом управления.

FontHeight Возвращает или задает высоту шрифта элемента управления.

ForeColor Получает или задает основной цвет элемента управления.

Handle Получает дескриптор окна, с которым связан элемент управления.

HasChildrenПолучает значение, определяющее, содержит ли элемент управления один или несколько дочерних элементов.

Height Возвращает или задает высоту элемента управления.

ImeMode Возвращает или задает режим редактора метода ввода элемента управления.

ImeModeBase Получает или задает режим IME элемента управления.

Свойства System.Windows.Forms.Control

Page 29: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 29

Свойства System.Windows.Forms.Control

InvokeRequired

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

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

IsDisposed Получает значение, показывающее, был ли удален элемент управления.

IsHandleCreatedПолучает значение, показывающее, имеется ли у элемента управления сопоставленный с ним дескриптор.

IsMirroredПолучает значение, показывающее, отображается ли зеркально элемент управления.

LayoutEngineПолучает кэшированный экземпляр механизма размещения элемента управления.

LeftВозвращает или задает расстояние (в пикселях) между левой границей элемента управления и левой границей клиентской области его контейнера.

LocationПолучает или задает координаты левого верхнего угла элемента управления относительно левого верхнего угла контейнера.

Margin Получает или задает расстояние между элементами управления.

MaximumSizeВозвращает или задает размер, являющийся верхней границей, которую может указать метод GetPreferredSize.

MinimumSizeВозвращает или задает размер, являющийся нижней границей, которую может указать метод GetPreferredSize.

ModifierKeysПолучает значение, указывающее, какая из клавиш-модификаторов (SHIFT, CTRL и ALT) находится в нажатом состоянии.

MouseButtonsПолучает значение, указывающее, какая из кнопок мыши находится в нажатом состоянии.

MousePosition Получает позицию указателя мыши в экранных координатах.

Page 30: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 30

Свойства System.Windows.Forms.Control

Name Возвращает или задает имя элемента управления.

Padding Возвращает или задает заполнение в элементе управления.

Parent Возвращает или задает родительский контейнер элемента управления.

PreferredSizeПолучает размер прямоугольной области, в которую может поместиться элемент управления.

ProductName Получает имя продукта сборки, содержащей элемент управления.

ProductVersion Получает версию сборки, содержащую элемент управления.

PropagatingImeMode Получает объект, представляющий режим IME распространения.

RecreatingHandleПолучает значение, показывающее, осуществляется ли в данный момент повторное создание дескриптора элементом управления.

RegionВозвращает или задает область окна, сопоставленную с элементом управления.

RenderRightToLeft Устаревший. Это свойство устарело.

ResizeRedrawВозвращает или задает значение, указывающее, перерисовывается ли элемент управления при изменении размеров.

RightПолучает расстояние (в пикселях) между правой границей элемента управления и левой границей клиентской области его контейнера.

RightToLeftПолучает или задает значение, показывающее, выровнены ли компоненты элемента управления для поддержки языков, использующих шрифты с написанием справа налево.

ScaleChildrenПолучает значение, определяющее масштабирование дочерних элементов управления.

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

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

Page 31: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 31

Свойства System.Windows.Forms.Control

SiteВозвращает или задает подложку элемента управления. (Переопределяет Component.Site.)

Size Возвращает или задает высоту и ширину элемента управления.

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

TabStopПолучает или задает значение, показывающее, может ли пользователь перевести фокус в данный элемент управления при помощи клавиши TAB.

Tag Получает или задает объект, содержащий данные элемента управления.

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

TopВозвращает или задает расстояние (в пикселях) между верхней границей элемента управления и верхней границей клиентской области его контейнера.

TopLevelControlПолучает родительский элемент управления, не имеющий другого родительского элемента управления Windows Forms. Как правило, им является внешний объект Form, в котором содержится элемент управления.

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

VisibleПолучает или задает значение, указывающее, отображаются ли элемент управления и все его дочерние элементы управления.

Width Возвращает или задает ширину элемента управления.

WindowTarget Инфраструктура. Данное свойство не относится к этому классу.

Page 32: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 32

Создание пользовательских элементов управления

Page 33: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 33

Создание пользовательских элементов управления

Page 34: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 34

Создание пользовательских элементов управления

Page 35: C# Desktop. Занятие 08

http://www.slideshare.net/IgorShkulipa 35

Лабороторная работа №8. Windows Forms

Создать приложение для синхронизации файлов в разных директориях(например, директория на жестком диске и на флеш-накопителе).

Реализовать функции (с одной и другой стороны):• Файл изменен• Файл удален• Файл создан

Интерфейс приложения создать на основе архитектурного шаблона MVP сиспользованием Windows Forms.