Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 160

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 154 155 156 157 158 159 < 160 > 161 162 163 164 165 166 .. 320 >> Следующая

BorderStyle Определяет стиль рамки вокруг строки состояния StatusBarPanel BorderStyle,Sunken
продолжение &
388 Глава 8 • Окна становятся лучше: введение в windows.Forms
Таблица 8.21 {продолжение)
Свойство Назначение Значение по умолчанию
Icon Определяет, будет ли создан значок для этой панели? Нулевая ссылка (то есть значка нет)
MinWidth Минимальная ширина панели 10
Style Определяет сгиль, соответствующий содержанию панели. Можно использовать только значения из перечисления StatusBarPanelStyle StatusBa rPanelStyle Text
Text Заголовок панели Пустая строка
ToolTlpText Подсказка, которая будет выдана, если установить над панелью указатель мыши То же самое
Width Ширина строки состояния 100
Создаем строку состояния
Начнем создавать строку состояния в нашем приложении. Пусть наша строка будет состоять из двух панелей. Левая панель будет выводить текстовые сообщения, относящиеся к работе приложения, а правая — выводить системное время. Кроме того, на самый левый край левой панели мы выведем значок с рожицей (просто чтобы было интереснее). То, что мы хотим в итоге получить, представлено на рис. 8.28.
Щ Status Нас Емаїгфіг
IU Help

©flea*. і Е5ШРМ J1
Рис. 8.28. Простая строка состояния
Для простоты мы будем продолжать работу гад нашим приложением Simple-Menu, которое мы создали в предыдущем разделе. Как и любой элемент управления (тип, производный от Control), объект StatusBar должен быть добавлен в коллекцию Controls объекта Form (подробнее об этой коллекции будет сказано в главе 10). Как вы, наверное, догадываетесь, коллекция содержит в себе записи для всех элементов управления, размещенных на форме, в том числе и строк состояния.
Строка состояния создается следующим образом;
public class MainForm : cm
{
Il Создаем объекты для всей строки состояния и ее отдельных панелей private StatusBar StatusBar = new StatusBar О: private StatusBarPanel sbPnlPrompt = new StatusBarPanelO: private StatusBarPanel sbPnlTime - new StatusBarPanelO;
Что такое строка состояния 389
public Мсіїґ.Гоггі:
II Метод, который создаст нам строку состояния // и настроит ее нунньи образом
private void BuildStatBarO I
II Настраиваем строку состояния
StatusBar.ShowPanels = true:
StatusBar.Size - new System, Drawing.SizeC212. 20);
StatusBar.Location = new System.Drawing.PointCO, 216);
II Панели добавляются в строку состояния при поищи метода AddRangeO StatusBar.Panels.AddRangetnew StatusBarPanel[] {sbPnlPrompt. sbPnlTime}):
//Настраиваем левую панель
sbPnl Prompt.BorderStyle = StatusBarPanel BorderStyle.None: sbPnlPrompt.AutoSize - StatusBarPanelAutoSize.Spring: sbPnlPrompt.Width - 62; sbPnlPrompt.Text - "Ready";
//Настраиваем правую панель
SbPnITi me.Alignment = HorizontalAlignment.Right;
SbPnlTime,Width = 76;
II Добавляем значок (подробнее о них - в главе 9) try
// Этот значок обязательно должен находиться в каталоге приложении // Как вставить ресурсы в приложение, вы узнаете в главе 9 Icon і - new IconCstatus.ico"); sbPnlPrompt.Icon = і;
}
catch(Exception e)
MessageBox.Showte.Message):
// Теперь панель управления в коллекцию Controls для формы
this.Controls,Add(statusBar);
Работаем с классом Timer
Наше приложение уже работает и обе панели строки состояния на месте. Однако, как мы помним, правая панель должна показывать время. Пока же она пуста.
Чтобы правая панель нашего приложения показывала время, удобнее всего
использовать класс Timer. Если у вас есть опыт работы с Visual Basic, то вы, скорее всего, уже имели дело с объектами Timer. В C++ для аналогичных целей использовалось сообщение WM„TIMER. В .NET используется объект SyS-
390 Глава 8 • Окна становятся лучше: введение в Windows.Forms
tem. Windows. Forms .Timer, который вызывает указанный нами (при помощи события Tick) метод через определенные интервалы (интервал задается при помощи свойства Interval). Наиболее важные члены этого класса представлены в табл. 8.22.
Таблица 8.22. Члены класса Timer Член Назначение
Enabled Это свойство определяет, будет ли объект Timer генерировать срабатывание
события Tick (можно сказать, что при помощи этого свойства объект Timer «включается» и «выключается»). Для тех же самых целей можно использовать методы Start() и Stop()
Interval Это свойство позволяет установить промежуток между событиями Tick
в миллисекундах
StartQ StcpO Эти методы используются для тех же целей, что и свойство Enabled: они управляют генерацией событий Tick
OnTickO Этот метод может быть замещен в классах, производных от Timer
Tick Это событие можно для добавления нового обработчика событий
в соответствующий MulticastDelegate
Таким образом, чтобы правая панель строки состояния начала показывать время, можно сделать так:
public class Mdir.Foriii : Form
private Timer timer 1 = new TiinerO;
public M і inForin( j {
Il Настраиваем объект Timer timed. Interval = 1000: ti mer 1. Enabled = true:
timerl.Ticfc +- new EventHand1er(timerl_Tick};
}
Il Этот метод будет вызываться прииерно каждую секунду private void timerl_Tick(ofcgect sender. EventArgs e) {
Предыдущая << 1 .. 154 155 156 157 158 159 < 160 > 161 162 163 164 165 166 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100