|
Программирование >> Программирование с использованием ajax
Применение размера, если пользователь нажимает клавишу <Enter>. TextBox txt = (TextBox)sender; if (txt.Text.Length > 0) ApplyTextSize(txt.Text) ; e. Handled = true; this.richTextBoxText.Focus(); private void textBoxSize Validated(object sender, EventArgs e) { TextBox txt = (TextBox)sender; ApplyTextSize(txt.Text); this.richTextBoxText.Focus(); private void ApplyTextSize(string textSize) { Преобразование текста в плавающий, поскольку это потребуется вскоре, float newSize = Convert.ToSingle(textSize); FontFamily currentFontFamily; Font newFont; Создание нового шрифта этого же семейства, но с новым размером. currentFontFamily = this.richTextBoxText.SelectionFont.FontFamily; newFont = new Font(currentFontFamily, newSize); Установка нового шрифта в качестве шрифта выбранного текста, this.richTextBoxText.SelectionFont = newFont; Событие KeyPress препятствует вводу пользователем любых значений кроме целочисленных и вызывает метод ApplyTextSize, если пользователь нажимает клавишу <Enter>. Интересующие нас действия выполняются во вспомогательном методе ApplyTextSize (). Он начинает свою работу с преобразования размера строки из string в float. Как уже было отмечено, приложение препятствует вводу пользователем чего-либо кроме целочисленных значений, но при создании нового шрифта требуется тип float, поэтому мы выполняем преобразование к нужному типу. После этого мы извлекаем семейство, к которому принадлежит данный шрифт, и создаем новый шрифт этого же семейства, но нового размера. И, наконец, мы устанавливаем новый шрифт в качестве шрифта выбранного текста. Вот и все форматирование, которое можно выполнить, но кое-какие задачи решаются самим элементом управления RichTextBox. Если теперь запустить пример, можно будет определять для текста полужирный, курсивный и подчеркнутый шрифт и центрировать текст. Это именно то, что требовалось, но обратите внимание на еще одно интересное обстоятельство: попытайтесь ввести в тексте Web-адрес - например, www. wrox. com. Текст, распознанный элементом управления в качестве Internet-адреса, подчеркивается, а указатель мыши при его помещении над таким текстом изменяет свою форму на изображение руки. Если вы полагаете, что на этом тексте можно щелкнуть, чтобы перейти к соответствующей странице, то почти правы. Но вначале необходимо выполнить обработку события, которое отправляется, когда пользователь щелкает на ссылке: LinkClicked. Найдите событие LinkClicked в списке Events окна Properties и дважды щелкните на нем, чтобы добавить обработчик этого события в код. С этим обработчиком события вы еще не встречались - он используется для предоставления текста ссылки, на которой был выполнен щелчок. Этот обработчик удивительно прост: private void richTextBoxText LinkClicked (object sender. System.Windows.Forms.LinkClickedEventArgs e) System.Diagnostics.Process.Start(e.LinkText); Этот код открывает используемый по умолчанию браузер, если он еще не был открыт, и переходит к сайту, указанному ссылкой, на которой был выполнен щелчок. Часть приложения, связанная с редактированием, готова. Остается только реализовать загрузку и сохранение содержимого элемента управления. Для этого мы будем использовать один и тот же фиксированный файл. Дважды щелкните на кнопке Load (Загрузить) и добавьте следующий код: private void buttonLoad Click(object sender, EventArgs e) { Загрузка файла в элемент управления RichTextBox. richTextBoxText.LoadFile( Test.rtf ); catch (System.10.FileNotFoundException) { Файла для загрузки нет MessageBox.Show( No file to load yet ); Вот и все! Мы больше ничего не можем сделать. Поскольку мы имеем дело с файлами, всегда существует вероятность возникновения исключительных ситуаций, и нужно быть готовым справиться с ними. Метод Load выполняет обработку исключения, генерируемого, если файл не существует. Сохранение файла - столь же простая задача. Дважды щелкните на кнопке Save (Сохранить) и добавьте следующий код: private void buttonSave Click(object sender, EventArgs e) Сохранение текста, try richTextBoxText.SaveFile( Test.rtf ); catch (System.Exception err) { MessageBox.Show(err.Message); Снова запустите пример, выполните форматирование какого-либо текста и щелкните на кнопке Save (Сохранить). Очистите содержимое текстового поля и щелкните на кнопке Load - только что сохраненный текст должен снова появиться. На этом создание примера применения элемента управления RichTextBox завершается. Теперь при его запуске результат должен быть подобным показанному на рис. 15.15. PlлhT*IIlII < ТрМ I Dod II Uniims iiil I I LwAm u? 10 ThD\v O /:bci: car be ound a HT TP www wrox com Чии LOfI d.XMdluGH-l hm lAILw LuUf Ul Ц f -UUk bUlfl ll I Lood Pwc. 75.75. Работающее приложение Ri chTextBoxTes t Элементы управления ListBox и CheckedListBox Списки используются для отображения списков строк, из которых одновременно можно выбирать одну или более строк. Подобно флажкам и переключателям, списки предоставляют способ затребовать от пользователя выбор одного или более элементов. Список следует использовать в тех случаях, когда во время разработки неизвестно точное количество значений, из которых пользователей может осуществлять выбор (например, в списке сотрудников). Даже если все возможные значения известны во время разработки, над применением списка следует подумать при наличии большого числа значений. Класс ListBox является производным от класса ListControl, который предоставляет основные функциональные возможности элементов управления типа списка, поставляемых с каркасом .NET Framework. Еще один вид доступного списка - CheckedListBox. Будучи производным от класса ListBox, он предоставляет список, подобно ListBox, но кроме текстовых строк он предоставляет также флажок для каждого элемента в списке. Свойства элемента управления ListBox Свойства, описанные в табл. 15.14, существуют в обоих классах ListBox и CheckedListBox, если не указано иное. Таблица 15.14. Часто используемые свойства классов ListBox и CheckedListBox Свойство Описание Selectedlndex ColumnWidth Items Это значение указывает начинающийся с нуля индекс элемента, выбранного в списке. Если одновременно список может содержать несколько выборок, это свойство содержит индекс первого элемента в выборке В списке, содержащем несколько столбцов, это свойство указывает ширину столбцов Коллекция Items содержит все элементы списка. Свойства этой коллекции используются для добавления и удаления элементов
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |