Разработка приложения My WordPad

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



rmО-программе, frmНовый-документ.

.2 Добавление объектов

Для ввода и редактирования текста располагаем на форме элемент RichTextBox - поле форматированного текста и устанавливаем свойство Text - пустой (empty), Anchor - Top, Bottom, Left, Right. Для выполнения различных действий располагаем на форме элемент MenuStrip, который содержит пункты: Файл, Правка, Вид, Вставка, Формат и Справка. Под меню располагаем панель инструментов - ToolStrip, позволяющую осуществить быстрый доступ к наиболее часто используемым пунктам меню, командам и функциям.

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

Также рсполагаем на форме диалоговые окна: PrintDialog (для задания параметров печати), PrintPreviewDialog, PageSetupDialog, SaveFileDialog, OpenFileDialog, FontDialog(для выбора шрифтов, установленных операционной системой). - элемент управления, который отображает диалоговое окно предварительный просмотр.- отображает диалоговое окно параметры страницы.и OpenFileDialog - элементы, предназначенные для отображения стандартных диалоговых окон открытия и сохранения файла. Как и другие невизуальные обьекты, данные элементы управления во время разработки отображаются в специальной области по формой. Для вызова того или иного диалогового окна используется метод Show Dialog().

.3 Программный код

System.Drawing.PrintingClass Form1

Процедура Otkr осуществляет открытие текстового файла.

Form1.OpenFileDialog1.FilterIndex = 1

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

If Form1.OpenFileDialog1.ShowDialog() = .Forms.DialogResult.OK Then+= 1(i, Form1.OpenFileDialog1.FileName, OpenMode.Input)= Form1.OpenFileDialog1.FileName.Text = ""

В зависимости от быбранного типа файла изменяем свойство WordWrap текстового поля, а текст формы меняем на название открываемого файла.

If Form1.OpenFileDialog1.FilterIndex = 1 Then.RichTextBox1.WordWrap = TrueForm1.OpenFileDialog1.FilterIndex = 2 Then.RichTextBox1.WordWrap = FalseIf= Len(MyNameFile)Until Mid(MyNameFile, m, 1) = "\".Text = Mid(MyNameFile, m, 1) + Form1.Text= m - 1.RichTextBox1.Text = ""

Далее происходит считывание строки из файла и добавленеи каждой строки в текстовое поле до тех пор, пока не достигнем конца файла, удаление выделения текста и закрытие файла.

Do Until EOF(i).RichTextBox1.Text = Form1.RichTextBox1.Text & LineInput(i) & vbCrLf.RichTextBox1.Select(1, 0)= Falseex As Exception("Ошибка открытия файла", MsgBoxStyle.Critical)(i)TryIf

Внесенные изменения можно сохранить при помощи команд меню Сохранить и Сохранить как, либо во время закрытия документа. Для этого используется процедура Sohr.

Если файл еще ни разу не сохранялся, то отображаем SaveFileDialog, который запрашивает у пользователя путь и имя сохраняемого документа. Если пользователь не отменит операцию в диалоговом окне, то перехватываем все ошибки с помощью обработчика. FileOpen открываем файл для вывода как файл номер i, записываем значение свойства RichTextBox.Text на диск с помощью функции PrintLine. Затем закрываем этот текстовый файл.

If i = 0 ThenForm1.SaveFileDialog1.ShowDialog() = .Forms.DialogResult.OK Then+= 1= Form1.SaveFileDialog1.FileName.Text = ""= Len(MyNameFile)Until Mid(MyNameFile, m, 1) = "\".Text = Mid(MyNameFile, m, 1) + Form1.Text= m - 1(i, Form1.SaveFileDialog1.FileName, OpenMode.Output)(i, Form1.RichTextBox1.Text)= Falseex As Exception("Ошибка открытия файла", MsgBoxStyle.Critical)(i)TryIf(i, MyNameFile, OpenMode.Output)(i, Form1.RichTextBox1.Text)(i)= FalseIf

Для печати документа используется команда Печать.

Try.DefaultPageSettings = PrintPageSettings= RichTextBox1.Text.Document = PrintDocument1result As DialogResult = PrintDialog1.ShowDialogresult = Windows.Forms.DialogResult.OK Then.Print()Ifex As Exception.Show(ex.Message)Try

Эта процедура события устанавливает параметры принтера по умолчанию для документа и , если пользователь изменил текст в объекте форматированного текста, присваивает содержимое объекта RichTextBox строковой переменной StringToPrint. Затем она открывает диалоговое окно Print и позволяет пользователю настроить любые параметры печати, которые можно изменить (принтер, число копий, опцию печати в файл и т.д.). если пользователь щелкнет на кнопке Ок, процедура события посылает задание печати на принтер, вызывая следующий оператор PrintDocument1.Print().

В процедуре события PrintDocument1_PrintPage содержится код:

Dim strFormat As New StringFormatrectDraw As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height)sizeMeasure As New SizeF(e.MarginBounds.Width, e.MarginBounds.Height - PrintFont.GetHeight(e.Graphics)).Trimming = StringTrimming.Word.Graphics.MeasureString(StringToPrint, PrintFont, sizeMeasure, strformat, numChars, numLines)= StringToPrint.Substring(0, numChars).Graphics.DrawString(stringForPage, PrintFont, Brushes.Black, rectDraw, strFormat)numChars < StringToPrint.Length Then= StringToPrint.Substring(numChars).HasMorePages = True.HasMorePages = False= RichTextBox1.TextIf

Эта процедура события выполняет печать текстового документа, и делает она это, точно определяя область печати (прямоугольник области печати) на основе параметров диалогового окна Page Setup. Весь текст, который помещается в этой области, может быть распечатан обычным образом. Текст, который выходит за границы этой области, должен быть разбит на несколько строк или страниц.

Область печати определяется с помощью переменной rectDraw, которая основана на классе RectangleF. Для обрезания строк, которые выходят за границу правого поля печати, испоьзуется переменная strFormat и метод Trimming. Готовая текстовая строка печатается методом DrawString. Свойство e.HasMorePages используется для указания того, есть ли еще страницы для печати. Если страниц для печати нет, свойство HasMorePages устанавливается на значение False, и содержимое переменной Stri