Студопедия

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

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

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






Реализация части обработчиков раздела меню Edit






Задачи раздела меню Edit, связанные с использованием буфера обмена, реализовать достаточно легко, поскольку вся необходимая функциональность уже заложена в элементе TextBox. Одними из первых подключим откаты Undo и Redo. Можно было бы создать свой механизм хранения откатов, но мы воспользуемся встроенным в TextBox журналом откатов. Он поддерживается методами Undo() и Redo(). Все члены класса TextBox можно посмотреть в MSDN на русском языке по ссылке

https://msdn.microsoft.com/ru-ru/library/system.windows.controls.textbox_members.aspx

Еще раз вспомним, что мы пока не управляем доступностью элементов-источников задач.

  • В файле Edit.cs заполните часть обработчиков следующим кодом
partial class Window1 { //------------------------------------------------------ // // Обработчики источников задач Edit // //------------------------------------------------------ private void UndoOnExecute(object sender, RoutedEventArgs e) { txtBox1.Undo(); } private void RedoOnExecute(object sender, RoutedEventArgs e) { txtBox1.Redo(); } private void CutOnExecute(object sender, RoutedEventArgs e) { txtBox1.Cut(); // Вариант //Clipboard.SetText(txtBox1.SelectedText); //txtBox1.SelectedText = " "; } private void CopyOnExecute(object sender, RoutedEventArgs e) { txtBox1.Copy(); // Вариант //Clipboard.SetText(txtBox1.SelectedText); } private void PasteOnExecute(object sender, RoutedEventArgs e) { // Если в буфере содержатся данные текстового формата if (Clipboard.ContainsText()) txtBox1.Paste(); } private void DeleteOnExecute(object sender, RoutedEventArgs e) { txtBox1.SelectedText = String.Empty; } private void FindOnExecute(object sender, RoutedEventArgs e) { } private void FindNextOnExecute(object sender, RoutedEventArgs e) { } private void ReplaceOnExecute(object sender, RoutedEventArgs e) { } private void GoToOnExecute(object sender, RoutedEventArgs e) { } private void SelectAllOnExecute(object sender, RoutedEventArgs e) { txtBox1.SelectAll(); } }

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






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