|
Программирование >> Web ориентированные приложения
SplitContainer Элемент управления SplitContainer - это на самом деле три элемента в одном. Он состоит из двух панелей с линейкой или разделителем между ними. Пользователь может перемещать эту линейку, изменяя размеры панелей. При изменении размеров панелей элементы управления, содержащиеся на них, также могут изменять свой размер. Лучшим примером SplitContainer может служить проводник файлов (File Explorer). Левая панель содержит TreeView с папками, а правая - ListView с содержимым этих папок. Когда пользователь перемещает курсор мыши над линейкой разделителя, он изменяет свой вид, говоря о том, что линейку можно перемещать. SplitContainer может содержать любые элементы управления, включая панели с компоновками и другие SplitContainer. Это позволяет создавать очень сложные и развитые формы. Элемент управления Splitter генерирует два события, связанные с перемещением: SplitterMoving и SplitterMoved. Одно происходит во время перемещения линейки, а другое - после завершения движения. Оба принимают аргумент SplitterEventArgs. SplitterEventArgs содержит свойства для координат X и Y левого верхнего угла Splitter (SplitX и SplitY), а также координаты X и Y указателя мыши (X и Y). TabControl и TabPages TabControl позволяет группировать связанные элементы управления в серии страниц-вкладок. TabControl управляет коллекцией элементов типа TabPages. Несколько свойств управляют внешним видом TabControl. Свойство Appearance использует перечисление TabAppearance для определения внешнего вида вкладок. Допустимыми значениями являются FlatButtons, Buttons и Normal. Свойство Multiline булевского типа указывает на то, что может отображаться более одной строки вкладок. Если свойство Multiline установлено в false, а количество вкладок превышает такое, что не может уместиться на экране, появляется пара кнопок, позволяющая прокручивать вкладки и видеть те, что не уместились. Свойство Text элемента TabPage - это то, что отображается на отдельной вкладке. Свойство Text устанавливается через параметр конструктора. Создав элемент управления TabPage, вы получаете контейнер, куда можно помещать другие элементы управления. Средствами дизайнера Visual Studio .NET легко добавить элемент TabPage к элементу управления TabControl, используя редактор коллекций. При добавлении каждой такой страницы можно установить множество ее свойств, затем перетащить на нее другие дочерние элементы управления. Получить текущую вкладку можно из свойства SelectedTab. Событие SelectedIndex возникает при каждом переключении вкладки. Прослушивая свойство SelectedIndex и затем подтверждая текущий выбор страницы через SelectedTab, вы можете организовать специальную обработку для каждой вкладки. Вы могли бы, к примеру, управлять данными, отображаемыми для каждой вкладки. ToolStrip Элемент управления ToolStrip - это контейнер, используемый для создания панелей инструментов, структур меню и строк состояния. ToolStrip используется непосредственно для панелей инструментов и в качестве базового класса для MenuStrip и StatusStrip. Применяемый в качестве панели инструментов, элемент управления ToolStrip использует набор элементов управления, происходящих от класса ToolStripItem. Класс ToolStripItem добавляет общую функциональность отображения и размещения, а также управляет большинством событий, связанных с элементами управления. ToolStripItem унаследован от класса System.ComponentModel.Component, а не от Control. Основанные на ToolStripItem классы должны содержаться в контейнере, происходящем от ToolStrip. Image и Text - возможно, наиболее часто используемые свойства. Графические изображения могут быть установлены либо через свойство Image, либо с использованием элемента управления ImageList и установкой свойства ImageList элемента управления ToolStrip. Затем могут быть установлены свойства ImageIndex индивидуальных элементов управления. Форматирование текста в ToolStripItem управляется свойствами Font, TextAlign и TextDirection. Свойство TextAlign устанавливает выравнивание текста относительно элемента управления. Это может быть любое значение из перечисления ControlAlignment. По умолчанию принимается MiddleRight. Свойство TextDirection задает ориентацию текста. Значения могут быть любыми из перечисления ToolStripTextDirection, а именно - Horizontal, Inherit, Vertical270 и Vertical90. Vertical270 поворачивает текст на 270 градусов, а Vertical90 - на 90 градусов. Свойство DisplayStyle управляет тем, отображается ли текст, изображение, то и другое или ни то ни другое на поверхности элемента управления. Когда AutoSize установлено в true, ToolStripItem будет изменять свой размер, потому потребуется минимальное пространство. Элементе! управления, унаследованные от ToolStripItem, перечислены в табл. 31.4. Таблица 31.4. Элементы управления, унаследованные от ToolStripItem Элемент Описание ToolStripButton Представляет кнопку, доступную для пользовательского выбора. ToolStripLabel Отображает не выбираемый текст или изображения на ToolStrip. ToolStripLabel также может отображать одну или более гиперссылок. ToolStripSeparator Используется для отделения и группирования других ToolStripItems. Элементы могут быть сгруппированы в соответствии с их функциональностью. ToolStripDropDownItem Отображает выпадающие элементы. Базовый класс для ToolStripDropDownButton, ToolStripMenuItem и ToolStripSplitButton. ToolStripControlHost Место размещения в ToolStrip других элементов управления, не унаследованных от ToolStripItem. Базовый класс для ToolStripComboBox, ToolStripProgressBar и ToolStripTextBox. Два элемента этого списка - ToolStripDropDownItem и ToolStripControlHost - требуют некоторых пояснений. ToolStripDropDownItem - это базовый класс для ToolStripMenuItem, используемого для построения структур меню. Элементы ToolStripMenuItem добавляются к элементам управления MenuStrip. Как упоминалось ранее, MenuStrip унаследован от ToolStrip. Это становится важным, когда приходит время манипулировать или расширять элементы меню. Поскольку панели инструментов и меню унаследованы от одних и тех же классов, создание каркасов для управления и выполнения команд становится намного проще. ToolStripControlHost может использоваться для размещения в себе элементов управления, чей тип не наследуется от ToolStripItem. Вспомним, что напрямую в ToolStrip могут размещаться только элементы управления, унаследованные от ToolStripItem. В следующем примере показано, как поместить элемент управления DateTimePicker на ToolStrip. public mdiParent() InitializeComponent(); ToolStripControlHost dateTimeCtl; dateTimeCtl = new ToolStripControlHost(new DateTimePicker()); ((DateTimePicker) dateTimeCtl.Control).ValueChanged += delegate { toolStripLabel1.Text = ((DateTimePicker) dateTimeCtl.Control).Value.Subtract(DateTime.Now).ToString(); dateTimeCtl.Width = 200; dateTimeCtl.DisplayStyle = ToolStripItemDisplayStyle.Text; toolStrip1.Items.Add( dateTimeCtl); Это конструктор формы frmMain из кода примера. Сначала объявляется и создается экземпляр ToolStripControlHost. Обратите внимание, что когда создается этот экземпляр, элемент управления, который должен быть в нем размещен, передается конструктору. Следующая строка кода устанавливает обработчик события ValueChanged для элемента управления DateTimePicker. Он может быть доступен через свойство Control класса ToolStripHostControl, потому его нужно привести обратно к правильному типу элемента управления. Когда это сделано, можно обращаться к свойствам и методам размещенного внутри ToolStripHostControl элемента управления. Другой способ сделать это, обеспечивающий лучшую инкапсуляцию - создать новый класс, унаследованный от ToolStripControlHost. Приведенный ниже код представляет другую версию включения DateTimePicker в ToolStrip как нового класса ToolStripDateTimePicker. namespace FormsSample.SampleControls public class DTPickerToolStrip: System.Windows.Forms.ToolStripControlHost public event EventHandler ValueChanged; public DTPickerToolStrip () : base(new DateTimePicker()) public new DateTimePicker Control get{return (DateTimePicker)base.Control;} public DateTime Value get { return Control.Value; } protected override void OnSubscribeControlEvents(Control control) base.OnSubscribeControlEvents(control); ((DateTimePicker)control).ValueChanged += new EventHandler(ValueChangedHandler);
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |