Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Благодарности 8 страница






Рис. 4-25. Меню второго уровня Paragraph alignment

Для того чтобы добавить меню второго уровня, Вам нужно вначале ввести с клавиатуры его название (как Вы это делаете для строк меню первого уровня). Затем необходимо ввести названия строк меню второго уровня в поле Type Here, расположенном справа от только что введенной строки первого уровня.

Не забудьте также изменить имена строк меню таким образом, чтобы с ними было легче работать в программе. Мы, например, назвали строку меню Left меню второго уровня Paragraph Alignment как menuFormatParagraphAlignmentLeft. Остальные строки меню второго уровня получили аналогичные названия.

Далее создайте обработчики событий для всех строк меню первого и второго уровня, щелкнув их дважды левой клавишей мыши.

Шрифт символов

Чтобы пользователь мог выбирать шрифт фрагмента текста, выделенного в окне редактирования программы SimpleNotepad, перетащите мышью из панели Toolbox в окно дизайнера формы компонент FontDialog. Этот компонент отображает на экране стандартное диалоговое окно выбора шрифта Font, показанное на рис. 4-26.

Рис. 4-26. Стандартное диалоговое окно выбора шрифта Font

Чтобы отобразить это диалоговое окно, добавьте вызов метода fontDialog1.ShowDialog в тело обработчика события menuFormatFont_Click, получающего управление при выборе строки Font из меню Format:

private void menuFormatFont_Click(object sender, System.EventArgs e)
{
if (fontDialog1.ShowDialog() == DialogResult.OK)
{
richTextBox1.SelectionFont = fontDialog1.Font;
}
}

После того как пользователь выбрал нужный ему шрифт, обработчик события переписывает этот шрифт из свойства fontDialog1.Font в свойство richTextBox1.SelectionFont. Свойство SelectionFont позволяет изменить шрифт фрагмента текста, выделенного пользователем (или программой) в окне редактирования.

Цвет символов

Чтобы пользователь мог изменять цвет выделенного фрагмента текста, добавьте в проект компонент ColorDialog, перетащив его значок мышью из панели Toolbox в окно дизайнера форм.

Этот компонент отображает на экране стандартное диалоговое окно выбора цвета (рис. 4‑ 27).

Рис. 4-27. Стандартное диалоговое окно выбора цвета Color

Далее модифицируйте обработчик событий для строки Color меню Format следующим образом:

private void menuFormatColor_Click(object sender, System.EventArgs e)
{
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
richTextBox1.SelectionColor = colorDialog1.Color;
}
}

Здесь программа вначале отображает диалоговое окно выбора цвета, вызывая для этого метод colorDialog1.ShowDialog. Затем она переписывает выбранный цвет из свойства colorDialog1.Color диалогового окна в свойство richTextBox1.SelectionColor окна редактирования текста. В результате цвет фрагмента текста, выделенного пользователем перед выполнением данной операции, будет изменен.

Стиль символов

Редактируя документы, пользователи часто применяют выделение слов и фрагментов текста жирным шрифтом, наклоном, подчеркиванием или перечеркиванием. Для подобного форматирования в нашей программе предусмотрены строки меню второго уровня Character Style с названиями Bold, Italic, Underline и Strikeout, соответственно.

Рис. 4-28. Изменение стиля символов

Реализация соответствующей функциональности возложена на методы SetBold, SetItalic, SetUnderline и SetStrikeout, которые мы добавили в обработчики сообщений строк меню Character Style:

private void menuFormatFontCharacterStyleBold_Click(object sender,
System.EventArgs e)
{
SetBold();
}

private void menuFormatFontCharacterStyleItalic_Click(object sender,
System.EventArgs e)
{
SetItalic();
}

private void menuFormatFontCharacterStyleUnderline_Click(
object sender, System.EventArgs e)
{
SetUnderline();
}

private void menuFormatFontCharacterStyleStrikeout_Click(
object sender, System.EventArgs e)
{
SetStrikeout();
}

Все эти методы имеют одинаковую внутреннюю структуру, поэтому подробно мы расскажем только об одном из них — о методе SetBold.

Вот исходный текст данного метода:

/// < summary>
/// Установка стиля символов Bold
/// < /summary>
private void SetBold()
{
if (richTextBox1.SelectionFont! = null)
{
System.Drawing.Font currentFont = richTextBox1.SelectionFont;
System.Drawing.FontStyle newFontStyle;

if (richTextBox1.SelectionFont.Bold == true)
{
newFontStyle = FontStyle.Regular;
}
else
{
newFontStyle = FontStyle.Bold;
}

richTextBox1.SelectionFont = new Font(
currentFont.FontFamily, currentFont.Size, newFontStyle);

CheckMenuFontCharacterStyle();
}
}

Получив управление, метод SetBold прежде всего, определяет шрифт фрагмента текста, выделенного пользователем, анализируя свойство richTextBox1.SelectionFont. Если шрифт определить не удалось, и это свойство содержит значение null, наша программа не делает никаких изменений.

В противном случае программа сохраняет текущий шрифт в переменной currentFont класса System.Drawing.Font.

Далее метод SetBold проверяет, был ли выделен фрагмент текста жирным шрифтом, анализируя свойство richTextBox1.SelectionFont.Bold. Если это свойство содержит значение true, то метод SetBold снимает выделение, если нет, то устанавливает его.

Для снятия выделения программа записывает в переменную newFontStyle значение FontStyle.Regular, а для установки — значение FontStyle.Bold.

В дальнейшем содержимое переменной newFontStyle будет использована методом SetBold для изменения оформления выделенного фрагмента текста. Это изменение выполняется следующим образом:

richTextBox1.SelectionFont = new Font(
currentFont.FontFamily, currentFont.Size, newFontStyle);

Здесь программа вначале создает новый шрифт как объект класса Font, передавая конструктору через параметры семейство currentFont.FontFamily текущего шрифта (установленного до выполнения операции), размер текущего шрифта currentFont.Size, а также новый стиль шрифта из переменной newFontStyle.

Далее этот шрифт записывается в свойство richTextBox1.SelectionFont, что и приводит к изменению стиля символов выделенного фрагмента текста.

Обратите также внимание, что при выделении фрагмента текста жирным шрифтом мы одновременно отмечаем «галочкой» строку меню Bold. С этой целью мы вызываем созданный нами метод CheckMenuFontCharacterStyle:

/// < summary>
/// Установка отметки строк меню Font-> CharacterStyle
/// < /summary>
private void CheckMenuFontCharacterStyle()
{
if(richTextBox1.SelectionFont.Bold == true)
{
menuFormatFontCharacterStyleBold.Checked = true;
}
else
{
menuFormatFontCharacterStyleBold.Checked = false;
}

if(richTextBox1.SelectionFont.Italic == true)
{
menuFormatFontCharacterStyleItalic.Checked = true;
}
else
{
menuFormatFontCharacterStyleItalic.Checked = false;
}

if(richTextBox1.SelectionFont.Underline == true)
{
menuFormatFontCharacterStyleUnderline.Checked = true;
}
else
{
menuFormatFontCharacterStyleUnderline.Checked = false;
}

if(richTextBox1.SelectionFont.Strikeout == true)
{
menuFormatFontCharacterStyleStrikeout.Checked = true;
}
else
{
menuFormatFontCharacterStyleStrikeout.Checked = false;
}
}

Метод CheckMenuFontCharacterStyle по очереди проверяет стилевое оформление выделенных фрагментов, отмечая «галочками» соответствующие строки меню CharacterStyle или снимая со строк этого меню отметки. Вот как, например, происходит обработка отметки строки Bold меню CharacterStyle:

if(richTextBox1.SelectionFont.Bold == true)
{
menuFormatFontCharacterStyleBold.Checked = true;
}
else
{
menuFormatFontCharacterStyleBold.Checked = false;
}

Если фрагмент текста, выделенный пользователем, оформлен жирным шрифтом, свойство richTextBox1.SelectionFont.Bold содержит значение true. В этом случае наша программа отмечает «галочкой» строку Bold меню CharacterStyle, записывая значение true в свойство Checked данной строки:

menuFormatFontCharacterStyleBold.Checked = true;

Когда оформление жирным шрифтом снимается, программа убирает галочку, записывая в свойство Checked значение false:

menuFormatFontCharacterStyleBold.Checked = false;

Исходные тексты методов SetItalic, SetUnderline и SetStrikeout приведены ниже:

/// < summary>
/// Установка стиля символов Italic
/// < /summary>
private void SetItalic()
{
if (richTextBox1.SelectionFont! = null)
{
System.Drawing.Font currentFont = richTextBox1.SelectionFont;
System.Drawing.FontStyle newFontStyle;
CheckMenuFontCharacterStyle();

if (richTextBox1.SelectionFont.Italic == true)
{
newFontStyle = FontStyle.Regular;
}
else
{
newFontStyle = FontStyle.Italic;
}

richTextBox1.SelectionFont = new Font(
currentFont.FontFamily, currentFont.Size, newFontStyle);

CheckMenuFontCharacterStyle();
}
}

/// < summary>
/// Установка стиля символов Underline
/// < /summary>
private void SetUnderline()
{
if (richTextBox1.SelectionFont! = null)
{
System.Drawing.Font currentFont = richTextBox1.SelectionFont;
System.Drawing.FontStyle newFontStyle;
CheckMenuFontCharacterStyle();

if (richTextBox1.SelectionFont.Underline == true)
{
newFontStyle = FontStyle.Regular;
}
else
{
newFontStyle = FontStyle.Underline;
}

richTextBox1.SelectionFont = new Font(
currentFont.FontFamily, currentFont.Size, newFontStyle);

CheckMenuFontCharacterStyle();
}
}

/// < summary>
/// Установка стиля символов Strikeout
/// < /summary>
private void SetStrikeout()
{
if (richTextBox1.SelectionFont! = null)
{
System.Drawing.Font currentFont = richTextBox1.SelectionFont;
System.Drawing.FontStyle newFontStyle;

if (richTextBox1.SelectionFont.Strikeout == true)
{
newFontStyle = FontStyle.Regular;
}
else
{
newFontStyle = FontStyle.Strikeout;
}

richTextBox1.SelectionFont = new Font(
currentFont.FontFamily, currentFont.Size, newFontStyle);

CheckMenuFontCharacterStyle();
}
}

Эти методы мы оставляем Вам для самостоятельного изучения.

Выравнивание параграфов

Оформляя документы, пользователи часто изменяют выравнивание отдельных параграфов. Применяется выравнивание по левой и правой границам документа, а также центровка.

После небольшой доработки наш редактор текста тоже сможет выравнивать параграфы текста, а также графические изображения, вставленные в документ через универсальный буфер обмена Clipboard (рис. 4-29).

Рис. 4-29. Выравнивание параграфов текста

Для изменения выравнивания текста мы создали в меню Fomat меню второго уровня Paragraph Alignment (рис. 4-25). Его строки Left, Right и Center обеспечивают выравнивание, соответственно, по левой и правой границе документа, а также центровку.

Подготовьте обработчики событий для строк меню Paragraph Alignment следующим образом:

private void menuFormatFontParagraphAlignmentLeft_Click(
object sender, System.EventArgs e)
{
richTextBox1.SelectionAlignment = HorizontalAlignment.Left;
}

private void menuFormatFontParagraphAlignmentRight_Click(
object sender, System.EventArgs e)
{
richTextBox1.SelectionAlignment = HorizontalAlignment.Right;
}

private void menuFormatFontParagraphAlignmentCenter_Click(
object sender, System.EventArgs e)
{
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
}

Все эти обработчики событий строк меню Paragraph Alignment изменяют значение свойства richTextBox1.SelectionAlignment, задающего выравнивание параграфа текста, выделенного пользователем (для выделения параграфа с целью изменения выравнивания достаточно установить в него текстовый курсор).

Чтобы текущий (выделенный) параграф выровнять по левой границе документа, в это свойство нужно записать значение HorizontalAlignment.Left. Для выравнивания по правой границе воспользуйтесь значением HorizontalAlignment.Right. И, наконец, для центровки параграфа потребуется значение HorizontalAlignment.Center.

Реализация функций меню Help

В этом разделе мы займемся наделением функциональностью строки About меню Help. Обычно при выборе этой строки в приложениях Microsoft Windows на экране появляется диалоговое окно, содержащее сведения о приложении, такие как название, версия, имена и электронные адреса авторов приложения и пр.

Для создания такого окна в приложении SimpleNotepad мы добавим в проект новую форму. В окне этой формы и будет отображаться вся информация о нашем приложении.

Добавление новой формы

Для того чтобы добавить в проект новую форму, щелкните правой клавишей мыши строку названия проекта SimpleNotepad в окне Solution Explorer. Затем выберите из меню Add строку Add Windows Form (рис. 4-30).

Рис. 4-30. Добавление в проект новой формы

На экране появится окно Add New Item, показанное на рис. 4-31. В правой части этого окна, содержащей значки шаблонов, будет выделен шаблон Windows Form.

Рис. 4-31. Ввод имени новой формы

Введите в поле Name строку HelpAboutForm.cs, а затем щелкните кнопку Open. В результате к проекту будет добавлена новая форма, а также новый класс HelpAboutForm.

Далее отредактируйте эту форму, добавив в нее описание программы, а также кнопку OK, предназначенную для закрытия окна формы. На рис. 4-32 мы показали вид формы About SimpleNotepad, подготовленной для нашего приложения.

Рис. 4-32. Диалоговая форма About SimpleNotepad в окне дизайнера форм

Чтобы форма вела себя как стандартное диалоговое окно ОС Microsoft Windows, необходимо настроить некоторые ее свойства. Проведите настройку в соответствии с табл. 4-1.

Таблица 4-1. Настройка свойств формы About SimpleNotepad

Свойство Значение
FormBorderStyle FixedDialog
StartPosition CenterParent
ControlBox false
MinimizeBox false
MaximizeBox false
ShowInTaskbar false
Text About SimpleNotepad

Сделаем некоторые замечания к этой таблице.

Свойство FormBorderStyle определяет вид рамки, расположенной вокруг окна формы. Если задать здесь значение FixedDialog, окно формы будет снабжено такой же рамкой, как и все стандартные диалоговые окна Microsoft Windows.

Свойство StartPosition позволяет указать расположение формы в момент ее отображения. Мы указали здесь значение CenterParent, в результате чего окно About SimpleNotepad появится в центре главного окна нашего приложения. Вы также можете выполнить центровку окна относительно экрана (значение Center Screen), позволить ОС Microsoft Windows самой расположить окно на экране (значение Windows Default Locations). Существуют и другие способы определения начального расположения окна формы. Вы можете выбрать соответствующие значения из меню при редактировании свойства StartPosition.

Для того чтобы убрать кнопки и управляющее меню из заголовка окна диалоговой формы, мы установили значения свойств MinimizeBox, MaximizeBox и ControlBox равными false.

Кроме того, мы «выключили» свойство ShowInTaskbar, записав в него значение false, для того чтобы окно диалоговой формы не было представлено своим значком в панели задач ОС Microsoft Windows.

И, наконец, свойство Text задает текст заголовка нашей диалоговой формы.

Отображение формы

Чтобы окно формы About SimpleNotepad появилось на экране при выборе пользователем строки About меню Help, мы добавили две строки в исходный текст обработчика событий menuHelpAbout_Click:

private void menuHelpAbout_Click(object sender, System.EventArgs e)
{
Form dlgAbout = new HelpAboutForm();
dlgAbout.ShowDialog();
}

Первая строка создает новую форму dlgAbout как объект класса HelpAboutForm, а вторая отображает форму на экране, вызывая для этого метод dlgAbout.ShowDialog. Мы показали форму на рис. 4-33 (на этом рисунке главное окно приложения снабжено инструментальной панелью, которую мы скоро создадим).

Рис. 4-33. Отображение диалоговой формы About SimpleNotepad

Редактирование класса HelpAboutForm

Итак, теперь наша форма About SimpleNotepad появляется на экране, однако закрыть ее можно только при помощи комбинации клавиш Alt-F4, используемой в ОС Microsoft Windows для закрытия окон.

Чтобы заставить работать элементы управления, расположенные в форме About SimpleNotepad, необходимо создать для них обработчики событий. Эта операция выполняется таким же образом, что и для главной формы нашего приложения.

Создайте обработчики событий, щелкнув дважды все элементы управления формы в окне дизайнера форм.

Для кнопки OK, закрывающей форму, добавьте в текст обработчика события button1_Click вызов метода this.Close:

private void button1_Click(object sender, System.EventArgs e)
{
this.Close();
}

Напомним, что этот метод закрывает форму и убирает ее с экрана.

Что же касается элементов управления LinkLabel, то здесь мы использовали тот же самый программный код, что и в нашем самом первом приложении Hello, описанном во 2 главе книги:

private void linkLabel1_LinkClicked(object sender,
System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
linkLabel1.Links[linkLabel1.Links.IndexOf(e.Link)].Visited = true;
System.Diagnostics.Process.Start(linkLabel1.Text);
}

private void linkLabel2_LinkClicked(object sender,
System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
linkLabel2.Links[linkLabel2.Links.IndexOf(e.Link)].Visited = true;
System.Diagnostics.Process.Start(" mailto: alexandre@frolov.pp.ru");
}

Создание инструментальной панели

Во многих приложениях, созданных для ОС Microsoft Windows, наиболее часто использующиеся строки меню дублируются кнопками, расположенными на инструментальных панелях. Такие панели есть, например, в главном окне самой системы разработки приложений Microsoft Visual Studio.NET.

В этом разделе мы расскажем, как снабдить окно приложения SimpleNotepad такой инструментальной панелью, и как создать для этой панели обработчик событий.

Добавление инструментальной панели в окно приложения

Чтобы добавить инструментальную панель в окно приложения, перетащите мышью ее значок ToolBar из инструментальной панели Microsoft Visual Studio.NET в окно проектирования формы нашего приложения.

По умолчанию окно инструментальной панели появится в верхней части формы. В только что добавленной панели нет ни одной кнопки. На рис. 4-34 мы показали инструментальную панель такой, какой она будет уже после добавления кнопок.

Рис. 4-34. Инструментальная панель в окне приложения SimpleNotepad

Сразу после добавления окно инструментальной панели будет расположено над окном редактора текста. Чтобы исправить это положение, щелкните правой кнопкой мыши окно редактора текста, а затем выберите из контекстного меню строку Bring to Front. В результате окна примут правильное взаимное расположение.

Заметим, что строка Send to Back только что упомянутого меню позволяет выполнить обратную операцию, а именно, переместить указанный элемент на задний план.

Подключение списка изображений

В панели инструментов Toolbox системы Microsoft Visual Studio.NET имеется компонент ImageList, специально предназначенный для хранения списков изображений. Этот компонент можно использовать совместно с инструментальной панелью ToolBar.

Добавьте компонент ImageList в наш проект, перетащив его значок в нижнюю часть окна проектирования формы. Он получит идентификатор imageList1 (рис. 4-35).

Рис. 4-35. Программные компоненты приложения SimpleNotepad

Теперь нужно подключить пустой пока список изображений imageList1 к инструментальной панели. Для этого в окне редактирования свойств Properties присвойте свойству ImageList инструментальной панели значение imageList1.

Наполнение списка изображений

Прежде чем приступать к наполнению списка изображениями, Вам нужно подготовить эти изображения при помощи любого графического редактора. Что касается инструментальной панели приложения SimpleNotepad, то здесь подойдет набор изображений, входящий в комплект Microsoft Visual Studio.NET. Вы найдете их в каталоге Program Files\Microsoft Visual Studio.NET\Common7\Graphics\bitmaps\OffCtlBr.

Создайте в папке проекта отдельную папку для хранения изображений инструментальной панели, назвав ее, например, ImageList. Далее скопируйте в созданную папку изображения, подготовленные для кнопок панели.

После этого Вам необходимо отредактировать свойство Images компонента imageList1. При этом запустится редактор набора изображений, окно которого показано на рис. 4-36.

Рис. 4-36. Окно редактора списка изображений

Для добавления изображения в список щелкните кнопку Add, а затем выберите файл нужного изображения при помощи стандартного диалогового окна Open (рис. 4-37).

Рис. 4-37. Выбор файла изображения

Добавив все необходимые изображения, расположите их в правильном порядке, пользуясь кнопками с изображением стрелок. При необходимости можно удалять отдельные изображения из списка при помощи кнопки Remove.

Редактирование кнопок инструментальной панели

Следующий этап — создание и редактирование кнопок инструментальной панели. Для выполнения этой работы необходимо запустить специальный редактор кнопок (рис. 4-38). Чтобы сделать это, измените свойство панели инструментов Buttons.

Рис. 4-38. Редактор кнопок инструментальной панели

Вначале с помощью кнопки Add добавьте в панель 10 кнопок. Восемь из них будут играть роль настоящих кнопок, а две будут использованы для разделения трех групп кнопок.

После добавление кнопки выделите кнопку с идентификатором toolBarButton1 (как это показано на рис. 4-38), и в окне toolBarButton1 Properties отредактируйте свойство ImageIndex. Редактирование будет заключаться в выборе одного из изображений, сохраненных Вами ранее в списке imageList1 (рис. 4-39).

Рис. 4-39. Редактирование свойства ImageIndex

Выполните эту операцию для кнопок с номерами 0-2, 4-6, 8 и 9.

Что же касается кнопок 3 и 7, то эти кнопки будут играть роль разделителей между группами кнопок, ответственных за выполнение различных групп операций. Для этих кнопок установите значение свойства Style, равным Separator.

После сохранения результатов и запуска приложения внешний вид инструментальной панели будет соответствовать рис. 4-34.

Редактируя свойство кнопок с именем Text, Вы можете разместить на кнопках инструментальной панели подписи с кратким описанием их назначения. Свойство ToolTipText позволит Вам снабдить каждую кнопку окном с поясняющим сообщением, которое появляется при наведении на кнопку курсора мыши (рис. 4-40).

Рис. 4-40. Усовершенствованная панель инструментов

По умолчанию подписи к кнопкам располагаются под графическими изображениями. Но есть и другой вариант — подписи могут находиться справа, как это показано на рис. 4-41.

Рис. 4-41. Изменение расположения подписей

Чтобы задать такое расположение, установите свойство TextAlign панели инструментов, равным значению Right. По умолчанию это свойство имеет значение UnderNeath, задающее расположение подписей в соответствии с рис. 4-40.

Установив свойство Divider равным значению false, можно избавиться от горизонтальной линии, отделяющей главное меню приложения от инструментальной панели.

Еще одно интересное свойство инструментальной панели — свойство Wrappable. По умолчанию оно имеет значение true, из-за чего при уменьшении размера окна по горизонтали может произойти свертка инструментальной панели (рис. 4-42).

Рис. 4-42. Свертка инструментальной панели

Чтобы этого не происходило, установите значение свойства Wrappable равным false.

И, наконец, установив значение свойства Appearance, равным Flat, можно создать панель инструментов с плоскими кнопками (рис. 4-43).

Рис. 4-43. Панель с плоскими кнопками

Строка состояния

Последнее добавление, которое мы сделаем к программе SimpleNotepad, — это добавление строки состояния. Строка состояния представляет собой узкое окно, располагающееся внизу окна приложения и предназначенная для отображения текущего состояния программы.

Добавление строки состояния

Чтобы добавить строку состояния, перетащите мышью из панели Toolbox в форму приложения значок элемента управления StatusBar.

Окно строки состояния окажется над окном редактора текста. Чтобы расположить окна правильно, щелкните правой кнопкой мыши окно редактора текста, а затем выберите из контекстного меню строку Bring to Front.

В результате этих действий главное окно нашего приложения примет вид, показанный на рис. 4-44.

Рис. 4-44. В окно приложения добавлена строка состояния

Настройка свойств строки состояния

Строка состояния может работать в двух режимах — в простом режиме и в режиме отображения панелей. Простой режим пригоден только для отображения одной-единственной текстовой строки. В режиме отображения панелей окно строки состояния можно разделить на панели, каждая из которых будет отображать различную информацию.

Чтобы отобразить текстовую строку в простом режиме, достаточно присвоить эту строку свойству stastusBar1.Text, например:

stastusBar1.Text = " Приложение SimpleNotepad";

Мы же настроим строку состояния для работы в более интересном режиме с использованием панелей.

Прежде всего, мы приравняем свойство Text нашей панели пустой строке.

Для отображения панелей приравняйте свойству ShowPanels значение true.

Далее мы отредактируем свойство Panels, чтобы поделить строку состояния на несколько панелей. Редактирование этого свойства выполняется при помощи редактора набора панелей, показанного на рис. 4-45.

Рис. 4-45. Редактор набора панелей

Добавьте в строку состояния с помощью кнопки Add две панели. Первая панель с идентификатором statusBarPanel1 будет использована для объяснения назначения строк меню во время их выбора, а вторая — для индикации факта изменения содержимого документа, загруженного в окно редактирования.

Первая панель (с идентификатором statusBarPanel1) должна изменять свой размер в зависимости от ширины окна. Поэтому для нее установите значение свойства AutoSize равным Spring.

Кроме того, присвойте свойству Text панелей statusBarPanel1 и statusBarPanel2 пустую строку. Это нужно сделать потому, что содержимое панелей будет определяться программой.

Привязка строки состояния к меню

Для того чтобы отслеживать выбор строк меню, наша программа должна предусмотреть специальный обработчик события Select. Это событие создается строками меню, когда пользователь выбирает их при помощи мыши или клавиатуры.

Прежде всего, создадим обработчик событий. Для этого выделите мышью меню File в окне дизайнера формы, а затем щелкните кнопку Events (с изображением высоковольтного разряда) в окне Properties (рис. 4-46).






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.