контекстное меню к конкретному элементу интерфейса, нужно выбрать его на форме и в свойстве ContextMenu
указать созданное контекстное меню.
До выхода .NET Compact Framework 2.0 элемент управления ContextMenu не поддерживал свойство ContextMenu.SourceControl
Элемент Timer
Элемент Timer
позволяет выполнять некоторые действия по истечении заданных интервалов времени. Чаще всего для работы с таймером разработчик применяет событие Tick
. Данное событие инициируется только в том случае, если свойство Enabled
имеет значение True
. Если нужно остановить таймер, то достаточно присвоить данному свойству значение False
.
Интервал отсчета времени задается свойством Interval
, а его значение указывает используемый промежуток времени в миллисекундах. Если рабочий интервал таймера должен составлять 3 с, то надо установить значение 3000.
Этот элемент управления уже применялся при работе с объектом ProgressBar
.
Элементы OpenFileDialog и SaveFileDialog
Практически в каждом приложении пользователь должен иметь возможность сохранить файл или открыть его. Разработчикам регулярно приходится реализовывать подобную функциональность в своих программах. При желании можно самому придумать и разработать интерфейс для подобной задачи. Но можно воспользоваться и стандартными диалоговыми окнами открытия и сохранения файла. Именно для этого применяются элементы управления OpenFileDialog
и SaveFileDialog
. К сожалению, в версии .NET Compact Framework возможности данных элементов управления серьезно урезаны. Разработчик может манипулировать файлами только в пределах папки My Documents
и вложенных папок следующего уровня. Поэтому папка My DocumentsProgrammingSample
будет уже недоступна.
Рассматриваемые элементы управления размещаются в нижней части дизайнера формы рядом с элементом MainMenu
. При работе с данными элементами прежде всего надо позаботиться о свойстве Filter
, которое ограничивает список доступных файлов, фильтруя их по расширению. Свойство InitalDirectory
содержит имя папки, в которой по умолчанию располагаются файлы. Если это свойство оставить пустым, то обзор файлов начнется с самой папки My Documents
.
Основным методом для этих элементов является ShowDialog
. После его вызова на экране отображается модальное окно, в котором пользователь должен нажать кнопку OK
или Cancel
. При этом метод ShowDialog
возвращает значения DialogResult.OK
и DialogResult.Cancel
соответственно. Если получено значение DialogResult.OK
, то пользователь нажал кнопку OK
и в свойстве Filename
содержится полный путь к выбранному файлу.
Пример работы с элементами OpenFileDialog
и SaveFileDialog
приведен в листинге 3.14.
private void butOpen_Click(object sender, EventArgs e) {
ofd.Filter = 'DLL|*.dll|Картинки|*.jpg';
ofd.InitialDirectory = '\My Documents\Templates';
if (DialogResult.OK == ofd.ShowDialog()) {
statusBar1.Text = ofd.FileName;
} else {
statusBar1.Text = 'Вы нажали на кнопку Отмена!';
}
}
Элементы HScrollBar и VScrollBar
Элементы управления HScrollBar
и VScrollBar
позволяют создавать полосы прокрутки для элементов, которые изначально не обладают этой функциональностью. Пользоваться этими полосами прокрутки совсем не сложно. Свойство Minimum
задает значение элемента, когда ползунок находится в крайней левой или в крайней верхней позиции, для HScrollBar
или VScrollBar
соответственно. Свойство Maximum
, задает максимальное значение для полос прокрутки. Значение свойства Value
зависит от положения ползунка. Оно всегда находится в диапазоне между значениями свойств Minimum
и Maximum
.
Когда пользователь щелкает на полосе прокрутки, то свойство Value изменяется в соответствии со значением, заданным в свойстве LargeChange
. Когда пользователь нажимает на кнопку навигации со стрелкой, то свойство Value изменяется в соответствии со значением, заданным в свойстве SmallChange
. Следует обратить внимание на то, что если ползунок находится в положении, определяемом свойством Maximum
, то свойство Value
не равно значению Maximum
. В этом случае значение свойства Value
вычисляется по формуле Maximum - LargeChange + 1
.
При изменении свойства Value
инициируется событие ValueChanged
. В листинге 3.15 приведен пример работы с полосами прокрутки.
private void vScrollBar1_ValueChanged(object sender, EventArgs e) {
this.lblScroll.Text = this.vScrollBar1.Value.ToString();
}
На рис. 3.10 показан внешний вид приложения. Если переместить ползунок в нижнюю часть полосы прокрутки, то значение в соответствии с формулой будет равно 91.
Рис. 3.10. Пример работы с полосами прокрутки
Список рисунков (ImageList)
Элемент управления ImageList
уже рассматривался при знакомстве с элементом ToolBar
. Элемент ImageList
используется для хранения коллекций растровых изображений. Как и многие другие элементы, список рисунков не отображается во время выполнения