150 likes | 303 Views
Класс Control. Базовый для класса Form и классов элементов управления - реализует общую функциональность всех элементов управления. В классе Control около 70 открытых свойств ( не унаследованных) более 40 открытых методов около 50 событий
E N D
Класс Control • Базовый для класса Form и классов элементов управления - реализует общую функциональность всех элементов управления. • В классе Control • около 70 открытых свойств ( не унаследованных) • более 40 открытых методов • около 50 событий • более 100 защищенных (protected) методов, большая часть которых – этообработчики событий по умолчанию, например, OnClick(). System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.ScrollableControl System.Windows.Forms.ContainerControl System.Windows.Forms.Form
Свойства класса Control: свойство Controls • Элемент управления одновременно может быть контейнером для других элементов управления (дочерних - child) и являться элементом другого контейнера - родительского (parent). • Свойство Controls класса Control дает доступ к коллекции всех дочерних элементов управления для формы (или элемента управления). public Control.ControlCollection Controls {get;} • Класс ControlCollection определен как вложенный в классе Control. publicclassControl.ControlCollection : IList, ICollection, IEnumerable, ICloneable
Свойства Control: свойство ParentОтношение дочерний-родительский • Свойство Parent класса Control возвращает ссылку на родительский элемент управления public Control Parent {get; set;} • Отношение дочерний-родительский устанавливается, • когда свойству Parent элемента управления присваивается ссылка на родительский элемент управления, или • элемент управления добавляется к коллекции дочерних элементов. • Дочерний элемент управления не выходит за границы родительского и перемещается вместе с ним. • Дочерний элемент управления наследует свойства родительского элемента (Font, FontColor, BackColor).Можно изменить эти свойства, а потом восстановить, вызвав методы ResetFont, ResetForeColor, ResetBackColor.
Отношение подчиненный-владелец • Отношение подчиненный-владелец может существовать только между формами. • Подчиненная форма может выходить за границы формы-владельца и не перемещается вместе с ней. Подчиненная форма не наследует свойства формы-владельца. • Подчиненная форма минимизируется и закрывается одновременно с формой-владельцем. Подчиненная форма никогда не скрывается за формой-владельцем(свойство формы, необходимое для окон “Find-Replace”). • Подчиненным может быть только окно верхнего уровня (top-level). • Отношение подчиненный-владелец между формами устанавливается, когда свойству класса Form publicFormOwner {get; set;} присваивается ссылка на другую форму или при вызове метода
z-порядок элементов управления. Индексы в коллекции ControlCollection • z–порядок элементов управленияопределяет их взаимное расположение в направлении, перпендикулярном экрану. • z–порядок связан с индексом элемента управления в коллекции. Для перекрывающихся элементов управления элемент с меньшим индексом расположен ближе к наблюдателю. • Можно изменить z–порядок с помощью методов класса Control public void BringToFront(); public void SendToBack();
Свойства Control с информацией о размерах и расположении окна на экране publicPointLocation {get; set;} – верхний левый угол по отношению к левому верхнему углу контейнера, экранные координаты для формы. publicintLeft {get; set;} -Point.Xсвойства Location publicintTop {get; set;} -Point.Yсвойства Location publicintHeight {get; set;} -( в пикселях) publicintWidth {get; set;} publicintRight {get;} publicintBottom {get;} publicSizeClientSize {get; set;} – размер клиентской части окна publicRectangleBounds {get; set;} – размер и расположение, включая системную часть окна (заголовок, рамка, меню, полосы прокрутки) publicSizeSize {get; set;} – высота и ширина окна publicRectangleClientRectangle {get;} Структуры Point, PointF, Size, SizeF, Rectangle, RectangleF определены в пространстве имен System.Drawing.
Свойства Control: фиксация (Anchor)и стыковка (Docking) • Фиксация (Anchor) позволяет связать границы элемента управления с границами контейнера. • Правая, левая, верхняя и нижняя границы могут быть связаны с границам контейнера независимо. public virtual AnchorStyles Anchor {get; set;} • Стыковка (Docking) позволяет “приклеить” элемент управления к одной из сторон контейнера. • Особый режим стыковки: Fill. В этом режиме элемент управления занимает весь контейнер. public virtual DockStyle Dock {get; set;}
Свойства Control: цвета и фон элементауправления • Цвет текста. Значение по умолчанию - SystemColors.ControlText . public virtual Color ForeColor {get; set;} public static Color DefaultForeColor {get;} • Цвет фона элемента управления. Значение по умолчанию - SystemColors.Control public virtual Color BackColor {get; set;} public static Color DefaultBackColor {get;} • Изображение как фон элемента управления. public virtual Image BackgroundImage {get; set;}
Структура Color. Класс SystemColors • Для цвета Windows Forms использует модель ARGB (alpha-red-green-blue). Структура Color – тип-значение: System.ObjectSystem.ValueTypeSystem.Drawing.Color • В структуре Color определены 140 статических свойств – набор предопределенных цветов, например: publicstaticColorGreen {get;} publicstaticColorForestGreen {get;} • В структуре Color определены 4 перегруженных метода для определения цвета с заданными значениями интенсивностей красного, зеленого и синего цветов и значением прозрачности: publicstaticColorFromArgb( intalpha, ColorbaseColor ); publicstaticColorFromArgb( intred, intgreen, intblue ); • В классе SystemColors определены только статические свойства со значениями системных цветов, которые установлены пользователем в OC, например, public static Color ActiveCaption {get;}.
Свойства Control: заголовок, меню • Виртуальное свойство Text переопределено в производных классах. В классе Form – это свойство определяет текст заголовка, в классе TextBox – текст в элементе управления. public virtual string Text {get; set;} • Контекстное меню, связанное с элементом управления, по умолчанию появляется, когда пользователь нажимает правую кнопку мыши. ContextMenu имеет приоритет перед ContextMenuStrip. publicvirtualContextMenuContextMenu {get; set;} publicvirtualContextMenuStripContextMenuStrip{get; set;}
Свойства Control: курсор, шрифт • Cвойство Cursor определяет курсор мыши для данного элемента управления. Можно использовать один из предопределенных курсоров или создать нестандартный. public virtual Cursor Cursor {get; set;} • Предопределенные курсоры находятся в классе Cursors. Класс состоит только из статических свойств (более 20), возвращающих ссылку на предопределенные курсоры, например, public static Cursor WaitCursor {get;} • Свойство Font определяет шрифт текста в элементе управления. public virtual Font Font {get; set;} public static Font DefaultFont {get;} • Свойства Font и Cursor являются ambient – если не установлены, то наследуются от родительского элемента управления.
Свойства Control: состояние элемента управления • Класс Control - базовый для класса Form и классов элементов управления, реализует общую функциональность всех элементов управления.
Свойства Control: фокус ввода • Ввод от клавиатуры получает элемент управления, который имеет фокус ввода. • Экземплярный метод Focus() программно передает фокус ввода. public bool Focus();
Свойства Control: CausesValidation • Элемент управления получает события в следующем порядке: • Enter • Validating • Validated • Leave • События Validating и Validated происходят только в том случае, когда свойство элемента управления publicboolCausesValidation {get; set;} имеет значение true ( умолчание - false).
Свойства Control: Tag publicobjectTag {get; set;} • Свойство Tag дает возможность установить связь между элементом управления и объектом, содержащим данные. • Свойство удобно использовать при работе с массивом управляющих элементов.