Программирование >>  Программирование с использованием ajax 

1 ... 173 174 175 [ 176 ] 177 178 179 ... 396


4? Simple Editor

Open-. Save

Save As .

Puc. 17.15. Выбор пункта меню FileSave As

Откроется диалоговое окно SaveFileDialog, показанное на рис. 17.16. Теперь можно сохранить файл и открыть его снова для внесения других изменений.


FitD mK Untitled SMtKtype: У

Рис. 17.16. Диалоговое окно Sa veFi 1 eDi а log

5. Теперь можно выполнять операцию Save As (Сохранить как), но простая операция Save пока недоступна. Добавьте обработчик события Click пункта меню Save и добавьте следующий код:

private void OnFileSave(object sender, EventArgs e) {

if (fileName = Untitled ) {

OnFileSaveAs(sender, e) ;

else

SaveFile0;



Описание полученных результатов

Меню Save должно обеспечивать сохранение файла без открытия какого-либо диалогового окна с единственным исключением из этого правила: если пользователь создает новый документ, но не указывает имя файле, обработчик меню Save должен работать подобно обработчику меню Save As, отображая диалоговое окно Save File.

Переменная-член filename позволяет легко проверить, открыт ли файл, либо имя файла все еще остается установленным в изначальное значение Untitled после создания нового документа. Если оператор if возвращает значение true, программа вызывает обработчик OnFileSaveAs (), ранее реализованный для меню Save As.

Если же файл быя открыт и пользователь выбирает меню Save, поток управления передается в блок else. При этом можно использовать тот же метод SaveFile (), который был реализован ранее.

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

Практическое занятие[][

1. Создайте новую функцию-член SetFormTitle () и добавьте следующую ее реализацию:

private void SetFormTitle () {

Filelnfo filelnfo = new Fileinfо(fileName); Text - filelnfo.Name + - Simple Editor ;

Класс Filelnfo служит для получения хранящегося в переменной fileName имени файла без префикса пути. Класс Filelnfo освещен в главе 24.

2. После установки переменной-члена fileName добавьте обращение к этому методу в обработчики OnFileNew (), OnFileOpen () и OnFileSaveAs (), как показано в следующих фрагментах кода:

private void OnFileNew(object sender. System.EventArgs e) {

fileName = Untitled ; SetFormTitle0;

textBoxEdit.Clear();

private void OnFileOpen (ob:)ect sender. System.EventArgs e) {

if (dlgOpenFile.ShowDialog0 == DialogResult.OK) {

fileName = dlgOpenFile.FileName; SetFormTitle 0 ;

OpenFile 0;

private void OnFileSaveAs(object sender. System.EventArgs e)



Описание полученных результатов

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

Теперь работа приложения начинается с открытия экрана, показанного на рис. 17.17, на котором, как следует из заголовка формы, выполняется редактирование файла sample. txt.

Итак, теперь мы располагаем простым редактором, который позволяет открывать, создавать и сохранять файлы (а также их редактировать). Значит ли это, что работа завершена? В действительности, нет. Поскольку офисы, полностью обходящиеся без печатных документов, пока не существуют, в приложение нужно добавить определенные возможности печати.

10 Sampl ,txt Simplt Editor

9

Th**8 enTpteHe

Рис. 17.17. Начальное окно приложения SimpleEdi tor

Печать

При печати приходится заботиться о множестве нюансов, таких как выбор принтера, установка параметров страниц и выполнение многостраничной печати. Классы пространства имен System. Drawing. Printing предоставляют огромную поддержку выполнения этих задач и позволяют без труда выполнять печать документов из приложений пользователей. Прежде чем приступить к рассмотрению класса PrintDialog, который позволяет выбирать принтер, кратко рассмотрим выполнение печати в среде каркаса .NET. В основе печати лежит класс PrintDocument, имеющий метод Print (), который начинает последовательность вызовов, завершающуюся вызовом метода OnPrintPage (), который отвечает за передачу выходных данных принтеру. Однако прежде чем изучать реализацию кода печати, вначале рассмотрим классы печати каркаса .NET.

Архитектура печати

Основные части архитектуры печати и взаимосвязь между классами и некоторыми свойствами и методами показаны на рис. 17.18.

if (dlgSaveFile.ShowDiaiogо == DialogResult.OK) {

fileName = dlgSaveFile.FileName; SetFormTitleO ;

SaveFile 0 ;



1 ... 173 174 175 [ 176 ] 177 178 179 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика