|
Программирование >> Программирование с использованием ajax
Таблица 16.9. Определение событий Кнопка ToolStripButton Событие New MenuItemNew Click Open MenuItemOpen Click Save MenuItemSave Click Теперь пора добавить обработчики для кнопок Bold, Italic и Underline. Поскольку эти кнопки являются кнопками флажков, вместо события Click нужно использовать событие CheckedChanged, поэтому добавьте это событие для каждой из трех названных кнопок. Добавьте следующий код: private void ToolStripButtonBold CheckedChanged(object sender, EventArgs e) { Font OldFont; Font newFont; bool CheckState = ((ToolStripButton)sender).Checked; Получение шрифта, используемого в выбранном тексте. OldFont = this.richTextBoxText.SelectionFont; if (!CheckState) newFont = new Font(oldFont, oldFont.Style & -FontStyle.Bold) ; else newFont = new Font(oldFont, oldFont.Style I FontStyle.Bold); Вставка нового шрифта и возвращение фокуса элементу управления RichTextBox. this.richTextBoxText.SelectionFont = newFont; this.richTextBoxText.Focus(); this.ToolStripMenuItemBold.CheckedChanged -= new EventHandler(ToolStripMenuItemBold CheckedChanged); this.ToolStripMenuItemBold.Checked = checkState; this.ToolStripMenuItemBold.CheckedChanged += new EventHandler(ToolStripMenuItemBold CheckedChanged); private void ToolStripButtonItalic CheckedChanged(object sender, EventArgs e) { Font OldFont; Font newFont; bool CheckState = ((ToolStripButton)sender).Checked; Получение шрифта, используемого в выбранном тексте. oldFont = this.richTextBoxText.SelectionFont; if (!checkState) newFont = new Font(oldFont, oldFont.Style & -FontStyle.Italic) ; else newFont = new Font(oldFont, oldFont.Style FontStyle.Italic) ; Вставка нового шрифта. this.richTextBoxText.SelectionFont = newFont; this.richTextBoxText.Focus() ; this.ToolStripMenuItemltalic.CheckedChanged -= new EventHandler(ToolStripMenuItemItalic CheckedChanged); this.ToolStripMenuItemltalic.Checked = checkState; this.ToolStripMenuItemltalic.CheckedChanged += new EventHandler(ToolStripMenuItemItalic CheckedChanged); private void ToolStripButtonUnderline CheckedChanged(object sender, EventArgs e) Font oldFont; Font newFont; bool checkState = ( (ToolStripButton)sender).Checked; Получение шрифта, используемого в выбранном тексте. oldFont = this.richTextBoxText.SelectionFont; if (!CheckState) newFont = new Font(oldFont, oldFont.Style & -FontStyle.Underline); else newFont = new Font(oldFont, oldFont.Style I FontStyle.Underline); Вставка нового шрифта. this.richTextBoxText.SelectionFont = newFont; this.richTextBoxText.Focus(); this.ToolStripMenuItemUnderline.CheckedChanged -= new EventHandler(ToolStripMenuItemUnderline CheckedChanged); this.ToolStripMenuItemUnderline.Checked = checkState; this.ToolStripMenuItemUnderline.CheckedChanged += new EventHandler(ToolStripMenuItemUnderline CheckedChanged); Обработчики событий просто устанавливают нужный стиль для шрифта, используемого в элементе управления RichTextBox. Три последние строки каждого из трех методов выполняют действия с соответствующим элементом меню. Первая строка удаляет обработчик события из элемента меню. Это предотвращает запуск каких-либо событий при переходе к следующей строке. В результате состояние свойства Checked устанавливается в то же значение, что и у кнопки панели инструментов. И, наконец, выполняется переустановка обработчика события. Обработчики событий элементов меню должны просто устанавливать свойство Checked кнопок панели инструментов, предоставляя выполнение всех остальных необходимых действий обработчикам кнопок панели инструментов. Добавьте обработчики события CheckedChanged и введите следующий код: private void ToolStripMenuItemBold CheckedChanged(object sender, EventArgs e) this.ToolstripButtonBold.Checked = ToolStripMenuItemBold.Checked; private void ToolStripMenuItemItalic CheckedChanged(object sender, EventArgs e) this.ToolStripButtonltalic.Checked = ToolStripMenuItemltalic.Checked; private void ToolStripMenuItemUnderline CheckedChanged(object sender, EventArgs e) this.ToolStripButtonUnderline.Checked = ToolStripMenuItemUnderline.Checked; Теперь осталось только предоставить пользователям возможность выбора семейства шрифта из элемента управления ComboBox. Каждый раз, когда пользователь изменяет выбор в элементе управления ComboBox, приложение генерирует событие SelectedlndexChanged, поэтому добавьте обработчик для этого события: private void toolStripComboBoxFonts SelectedIndexChanged(object sender, EventArgs e) string text = ( (ToolStripComboBox)sender) .Selectedltem.ToString() ; Font newFont = null; Создание нового шрифта из нужного семейства шрифтов, if (richTextBoxText.SelectionFont == null) newFont = new Font(text, richTextBoxText.Font.Size); else newFont = new Font(text, richTextBoxText.SelectionFont.Size, richTextBoxText.SelectionFont.Style); richTextBoxText.SelectionFont = newFont; Теперь запустите приложение. Должна появиться возможность открытия диалогового окна, подобного показанному на рис. 16.7. Панель инструментов слегка смещена вправо от отображаемого меню.
Рис. 16.7. Приложени£ с добавленной возможностью открытия диалогового окна Элемент управления StatusStrip Последний из элементов небольшого семейства строковых элементов управления - StatusStrip. Он представляет строку, отображаемую в нижней части диалоговых окон многих приложений. Как правило, эта строка служит для отображения краткой информации о текущем состоянии приложения. Наглядным примером может быть отображение в строке состояния приложения Word текущей страницы, столбца, строки и т.п. во время ввода текста. Элемент управления StatusStrip является производным от ToolStrip. Поэтому результат перетаскивания этого элемента управления поверх формы должен выглядеть достаточно знакомо. Три из четырех элементов управления, которые могут быть использованы в элементе управления StatusStrip - ToolStripDropDownButton, ToolStripProgressBar и ToolStripSplitButton - уже были представлены ранее. Поэтому нам остается рассмотреть только один элемент управления, характерный для StatusStrip: StatusStripStatusLabel, который является также используемым по умолчанию. Свойства элемента управления StatusStripStatusLabel StatusStripStatusLabel используется для предоставления пользователю краткой информации о текущем состоянии приложения в виде текста и изображений. Поскольку в действительности надпись - очень простой элемент управления, количество его свойств, которые мы рассмотрим, не слишком велико. Два свойства, описан-
|
© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |