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

1 ... 171 172 173 [ 174 ] 175 176 177 ... 396


Simplt Editor

Could not find We

civBegVCSharpvChapterl / SenpteEditor Smiptetditorlxn.Debug te sf.

Puc. 17.9. Окно с сообщением о несуществующем файле

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

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

Добавление и использование класса OpenFileDialog

1. В категории Windows Forms панели инструментов Toolbox найдите компонент OpenFileDialog. Перетащите его из Toolbox на серую область в нижней части панели Forms Designer. Измените три свойства: имя экземпляра на dlgOpenFile, значение свойства Filter на приведенную ниже строку и значение свойства Filterlndex на 2, чтобы определить Wrox Documents как опцию, выбираемую по умолчанию:

Text Documents (*.txt) Г.txtWrox Documents (*.wroxtext)*.wroxtextAll Files Г.*

2. Ранее мы добавили к пункту меню Open обработчик события Click, названный OnFileOpen. Чтобы с помощью Forms Designer добавить реализацию этого обработчика события, дважды щелкните на пункте меню Open. Код реализации отображения диалогового окна и чтения выбранного файла имеет следующий вид:

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

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

fileName = dlgOpenFile. FileName; OpenFileO;

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

Добавление компонента OpenFileDialog в область проектирования Windows Forms Designer ведет к добавлению нового приватного члена в класс SimpleEdi tor Form. Приватный член можно видеть в файле SimpleEditorForm. Designer. cs. Этот файл отображается только при щелчке на кнопке Show АН Files (Показать все файлы) в окне проводника решений Solution Explorer:

Если при запуске приложения в качестве аргумента командной строки вводится несуществующее имя файла, программа отображает окно сообщения, показанное на рис. 17.9.



partial class SimpleEditorForm {

private System.Windows.Forms.TextBox textBoxEdit;

private System.Windows.Forms.MenuStrip mainMenu;

private System.Windows.Forms.ToolStripMenuItem miFile;

private System.Windows.Forms.ToolStripMenuItem miFileNew;

private System.Windows.Forms.ToolStripMenuItem miFileOpen;

private System.Windows.Forms.ToolStripMenuItem miFileSave;

private System.Windows.Forms.ToolStripMenuItem miFileSaveAs;

private System.Windows.Forms.OpenFileDialog dlgOpenFile;

В области кода конструктора, сгенерированной средой Windows Forms, в методе InitializeComponent (), создается новый экземпляр этого класса OpenFileDialog и устанавливаются указанные свойства. Щелкните на символе + строки кода, сгенерированного Windows Forms Designer, а затем не символе + строки private void InitializeComponent (), чтобы увидеть следующий код:

private void InitializeComponent () {

this. textBoxEdit = new System.Windows. Forms.TextBox () ;

this.mainMenu = new System.Windows.Forms.MenuStrip() ; this.miFile = new System.Windows.Forms.ToolStripMenuItem() ; this.miFileNew = new System.Windows.Forms.ToolStripMenuItem(); this.miFileOpen = new System.Windows.Forms.ToolStripMenuItem() ; this.miFileSave = new System.Windows.Forms.ToolStripMenuItem(); this.miFileSaveAs = new System.Windows.Forms.ToolStripMenuItem(); this.dlgOpenFile = new System.Windows.Forms.OpenFileDialog(); ...

dlgOpenFile

this.dlgOpenFile.Filter =

Text Dociiments (*. txt) *. txt Wrox Dociiments + (*.wroxtext)I *.wroxtextAll Files*.* ; this.dlgOpenFile.Filterlndex = 2;

Конечно, происходящее в данном случае полностью совпадает с тем, чего можно было бы ожидать при перетаскивании на форму любого другого стандартного элемента управления, но при поддержке Windows Forms Designer мы смогли создать новый экземпляр класса OpenFileDialog и установить его свойства. Теперь диалоговое окно можно отобразить.

Метод ShowDialog () отображает диалоговое окно File Open (Открытие файла) и возвращает кнопку, нажатую пользователем. Если пользователь нажимает что-либо кроме кнопки ОК, никакие другие действия выполнять не нужно. По этой причине проверка на соответствие значению DialogResult.OK выполняется в операторе if. Если пользователь отменяет диалоговое окно, ничего не должно происходить:

if (dlgOpenFile.ShowDialogО == DialogResult.OK) {

Затем получается выбранное имя файла, обращаясь к свойству FileName класса OpenFileDialog, и устанавливаем переменную-член fileName в это значение. Именно это значение используется методом OpenFile (). Файл можно было бы открыть непосредственно, используя класс File, но поскольку мы уже располагаем методом OpenFile (), который открывает и считывает файл, мы используем следующий код:

fileName = dlgOpenFile.FileName; OpenFile О;



Теперь запустите программу SimpleEditor, показанную на рис. 17.10. На данный момент только пункты меню New и Open... являются действующими. Меню Save и Save As... будут реализованы в следующем разделе.

Slmplt Editor

Open-Save

Save Аб

Рис. 17.10. Приложение SimpleEdi tor с реализованными пунктами меню New и Open...

Если выбрать пункт меню FileOpen, откроется диалоговое окно OpenFileDialog (рис. 17.11) и можно будет выбрать файл. Скорее всего, у вас нет файлов с расширением .wroxtext. До сих пор возможности сохранять файлы не было, поэтому можно в диалоговом окне редактора выбрать другой тип файла для открытия или переименовать какой-то текстовый файл, присвоив ему расширение .wroxtext.

%< Open

GO f


Щ; Dotrumentj J Recently Changed Recent Places i Desktop f9 Computcf

Pkcttee-. Щ Music

More Folders

Date modjfted Type Hi*

No ttefiK rrvitrh your searcK

0 items

RhQane

Puc. 17.11. Диалоговое окно OpenFileDialog, отображающееся в результате выбора пункта меню File Open

Выберите текстовый файл, щелкните на кнопке Open, и текст отобразится в текстовом поле диалогового окна. Как видно на рис. 17.12, был выбран пример текстового файла Thinktecture. txt в локальной системе.



1 ... 171 172 173 [ 174 ] 175 176 177 ... 396

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