Работа с элементами управления
- Большой программе — большие глюки.
- Ничто так не ограничивает полёт мысли программиста, как компилятор ...
- "Hello World!" 17 errors, 31 warnings
— Микола, ты що свою домашню страныцю на домен "ru" засував? — А шо? — Так то ж "Раша"! — От, гады! А я думав, Ридна Украина!
Программист на Страшном Суде: — Куда сам-то хочешь: в ад или в рай? — спрашивают его. — А посмотреть можно? Привели его в огромаднейший ВЦ. Машин, сеток — видимо-невидимо. — Вот это — рай, будешь здесь юзером. — А ад? — Здесь же — только админом ... Таинственный случай, или Прикладная магия
Со слов менеджера : "Не включается компьютер — зову админа. Админ приходит, воздевает руки к небу, бормочет про себя невнятные слова, поворачивает мой стул 10 раз вокруг свой оси, пинает компьютер — тот начинает работать. Вновь воздевает руки к небу, что-то бормочет, уходит". Cо слов админа : "Прихожу к юзеру — этот дурак так вертелся на стуле, что у него шнур питания на ножку намотался. Матерюсь про себя, распутываю, запихиваю комп ногой подальше под стол, включаю, ухожу".
Папа! А что означает "Format C: Complete"?
Классификация водки в стиле IT: 0,1 л — demo 0,25 л — trial version 0,5 л — personal edition 0,7 л — professional edition 1,0 л — network edition 1,75 л — enterprise edition 3 л — for small business 5 л — corporate edition Бутыль самогона — home edition «На посошок» — Service pack Рассол с утра — Recovery tool Закуска — Plug-in Пиво — Patch Coca-Cola, Fanta, 7-Up — Trojan viruses
Пpиходит пpогpаммист к пианистy - посмотpеть на новый pояль. Долго ходит вокpyг, хмыкает, потом заявляет: — Клава неyдобная — всего 84 клавиши, половина фyнкциональных, ни одна не подписана, хотя ... shift нажимать ногой — оpигинально.
План работы
- Базовый класс элементов управления – Control
- Основные свойства и методы базового класса
- Основные элементы управления
Элементы управления (Controls)
- Классы производные от базового класса System.Windows.Forms.Control.
- Наследуют всю функциональность данного класса.
Типы элементов управления
- Визуальные элементы управления (controls)
- Компоненты (components) – не визуальные элементы управления
Некоторые базовые свойства класса System.Windows.Forms.Control
- Handle – номер окна Windows
- BackColor, ForeColor – фоновый цвет и цвет рисования
- Left, Top, Right, Bottom – координаты точек диагонали
- Height, Width – высота и ширина
- Size – размер окна
- ContextMenu – ссылка на контекстное меню
- Cursor - ссылка на курсор
- Name – имя элемента для работы системы разработки
- Parent – ссылка на родительское окно
- Text – заголовок
- Font – используемый шрифт
- Controls – список других элементов управления (если контейнер)
- TabIndex – порядок перехода при нажатии клавиши Tab
- Focused – имеет ли окно фокус ввода (get).
- Anchor – связывание со сторонами родительской формы.
- Dock – присоединение к сторонам родительской формы.
Размер окна
- Свойство Size – начальный размер окна.
- Свойство FormBorderStyle задает вид рамки формы:
- Sizable – рамка с изменяющимся размером; при изменении размера возникает событие SizeChanged; FixedSingle Fixed3D FixedDialog
- Sizable – рамка с изменяющимся размером; при изменении размера возникает событие SizeChanged;
- FixedSingle
- Fixed3D
- FixedDialog
Свойство Anchor
- Задает стороны родительского окна с которыми ЭУ связан. В этом случае, если родительское окно меняет размеры, то расстояние от ЭУ до заданных сторон родительской формы будет поддерживаться постоянным (неизменным).
- Например, если задан ЭУ Button, который привязан к left и right,
- Например, если задан ЭУ Button, который привязан к left и right,
button1.Anchor = (AnchorStyles.Left | AnchorStyles.Right);
то при изменении размера формы ЭУ Buton изменяет свои размеры так, чтобы сохранить расстояние до левой и правой сторон формы.
- Если ЭУ не привязан к сторонам формы и размер формы можно менять, положение ЭУ относительно сторон формы меняется.
Свойство Dock
- Задание присоединения (dock) границ ЭУ к границам родительского ЭУ и определения того, как ЭУ меняет свои размеры при изменений размеров родительского ЭУ.
- Свойства Anchor и Dock являются взаимно исключающими. Только одно может быть задано для ЭУ.
Некоторые основные методы класса System.Windows.Forms.Control
- Show() – показать окно на экране;
- Hide() - спрятать окно (убрать с экрана);
- OnEvent() – обработать заданное событие;
- CreateGrafics() – создать элемент класса Grafics для рисования в окне;
- Update() – обновить содержание окна;
- Invalidate() – объявить содержание окна неправильным, что заставляет ОС отправить событие WM_PAINT о необходимости перерисовки содержания окна.
Группы элементов управления
- Более 50 элементов управления (классов)
- Стандартные элементы управления
- Компоненты (не визуальные ЭУ)
- Элементы управления для работы с меню и инструментальными полосами
- Элементы управления для работы с принтером
- Общие диалоги
- Элементы управления для работы с базой данных
Использование элементов управления
- Включить в состав класса Form переменные требуемых типов
- Создать экземпляры классов элементов управления
- Задать их начальные свойства
- Создать методы - обработчики событий
- Связать эти методы с события элемента управления
- Добавить созданные объекты к коллекции Controls
Иерархия классов – элементов управления
Стандартные элементы управления – Common Controls
- Label (метки)
- LinkLabel (метки)
- Button (кнопки)
- RadioButton (кнопки)
- CheckBox (флажки)
- CheckedListBox (флажки)
- ListBox (флажки)
- ListView (списки)
- ComboBox (списки)
- TextBox (текст)
- RichTextBox (текст)
- MaskedTextBox (текст)
- NotifyIcon
- NumericUpDown
- PictureBox (графика)
- ProgressBar
- ToolTip
- TreeView (дерево)
- WebBrowser
- DateTimePicker
- MonthCalendar
Компоненты
- Элементы управления без визуального интерфейса
- Timer
- FileSystemWatcher
- BackgroundWorker
- HelpProvider
- ImageList
- SerialPort
- ServiceController
Элементы управления для работы с принтером - Printing
- PrintDialog
- PageSetupDialog
- PrintDocument
- PrintPreviewDialog
- PrintPreviewControl
Автоматизация создания программы
- Создает минимально требуемый для программы определенного типа набор файлов Заполняет файлы текстом простейшей программы
- Создает минимально требуемый для программы определенного типа набор файлов
- Заполняет файлы текстом простейшей программы
- Конструктор - дизайнер формы В визуальном режиме позволяет добавлять элементы управления к форме и задавать начальные значения их свойствам На основе действий пользователя автоматически генерируется код программы
- В визуальном режиме позволяет добавлять элементы управления к форме и задавать начальные значения их свойствам
- На основе действий пользователя автоматически генерируется код программы
Инструменты
- Windows Forms Designer «Конструктор форм Windows» - специальные подсистемы в Visual Studio для работы с инструментами визуальной разработки.
- Набор элементов управления ( Toolbox )
- Форма – контейнер для размещения элементов управления
- Окно Properties для работы со свойствами элементов управления в режиме проектирования (design mode)
Окно c набором элементов управления «Tollbox»
- Содержит все элементы управления, которые могут быть размещены на форме
- Все элементы разделены на группы
- Позволяет выбрать нужный элемент управления и перетащить его на форму
Просмотр свойств объекта
- Выделить элемент (должны появиться handles)
- Выделить элемент и выбрать команду Properties в контекстном меню.
Окно свойств «Properties»
- Позволяет выбрать свойство, посмотреть значение и задать новое значение.
События элемента в окне свойств
- Выбрать событие
- Двойной щелчок на имени события – создание пустого обработчика событий со стандартным именем.
- Задание имени и щелчок - создание пустого обработчика событий со стандартным именем.
- Одинарный щелчок на имени события – переход к обработчику событий.
- Можно сменить имя обработчика события
Работа дизайнеров
- В Visual Studio имеется несколько визуальных проектировщиков форм (visual forms designers)
- Основные операции:
- «Перетащить и уронить» (“drag-and-drop”) на форме элемент управления Перемещение элементов управления на форме (перетащить) и выбор их размеров Задание свойств элементов управления в окне Properties Назначение обработчиков событий для элементов управления
- «Перетащить и уронить» (“drag-and-drop”) на форме элемент управления
- Перемещение элементов управления на форме (перетащить) и выбор их размеров
- Задание свойств элементов управления в окне Properties
- Назначение обработчиков событий для элементов управления
- Дизайнеры предназначены для формирования частей программы на основе интерпретации действий программиста с инструментами Добавление элемента управления на форму – вставка объекта соответствующего класса в класс формы Размещение и изменение размеров – задание свойств созданных объектов Задание параметров элемента управления – присвоение значений свойствам созданных объектов. Задание обработчиков событий для элементов управления – создание методов для обработки событий и присвоение их соответствующим делегатам классов элементов управления.
- Добавление элемента управления на форму – вставка объекта соответствующего класса в класс формы
- Размещение и изменение размеров – задание свойств созданных объектов
- Задание параметров элемента управления – присвоение значений свойствам созданных объектов.
- Задание обработчиков событий для элементов управления – создание методов для обработки событий и присвоение их соответствующим делегатам классов элементов управления.
Разделение классов на части
- Для формы создаются 2 файла
- Form1.cs (в котором записываются обработчики событий, с которыми работает программист) Form1.Designer.cs (часть класса производного от Form, с которой работает программа-дизайнер, без необходимости не менять, но нужно понимать, что в этом файле содержится)
- Form1.cs (в котором записываются обработчики событий, с которыми работает программист)
- Form1.Designer.cs (часть класса производного от Form, с которой работает программа-дизайнер, без необходимости не менять, но нужно понимать, что в этом файле содержится)
- В этих файлах описывается один класс с ключевым словом partial:
partial class Form1 { . . . }
- Файл Form1.Designer.cs хранит часть класса производного от Form, с которой работает дизайнер .
- Файл Form1.cs хранит часть класса производного от Form, с которой работает программист (обработка событий элементов управления).
- Для просмотра кода из файла Form1.cs нужно выбрать в контекстном меню команду “View Code”
- Кроме файлов формы создается файл Program.cs с методом Main, в котором создается экземпляр нового класса форм и показывается окно программы.
Окно управления решением
- В проект включены три файла:
- Form1.cs Form1.Designer.cs Program.cs
- Form1.cs
- Form1.Designer.cs
- Program.cs
Вопросы:
- Что такое элементы управления и для чего они служат?
- Как удалить заданный элемент в режиме работы приложения?
- Назовите основные типы элементов управления.
- Назовите основные свойства и методы базового класса.
Список использованных источников:
1. Дубовцев А.В. Microsoft .NET в подлиннике : Наиболее полн. рук / А.В.Дубовцев. – СПб: БХВ-Петербург, 2004.
2. Рихтер Д. Программирование на платформе Microsoft .NET Framework : пер. с англ. / Д. Рихтер. – М.: Рус. ред., 2006.
3. Троелсен Э. C# и платформа .NET : пер. с англ. / Э. Троелсен. - Санкт-Петербург: Питер, 2004.