Пример 4.10.4-1. Взяв за основу проект изпримера 4.10.3-1, создать проект Пример4.10.4-1,в котором содержимое текстового файла считывается в TextBox2 и выводится на печать

1. Добавим на форму проекта примера 4.10.3-1 элемент управления Button с именем

Button3 и надписью Печать.

Получившаяся форма должна выглядеть подобнопоказанной на рис. 4.10.4-1.

Рис. 4.10.4-1

 

2. Добавить следующий исходный код в класс формы (рис. 4.10.4-2).

Imports System.Drawing.Printing PublicClass Form1 PrivateSub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Открыть существующий фаайл и загрузить из него текст Try TextBox2.Text = My.Computer.FileSystem.ReadAllText(TextBox1.Text) Catch ex As Exception MsgBox("Файл не может быть открыт из за "& _ " следующей ошибки:"& vbCrLf & vbCrLf & ex.Message) EndTry EndSub PrivateSub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click ' Записать в файл отредактированные данные If (My.Computer.FileSystem.FileExists(TextBox1.Text) = True) Then If (MsgBox("Файл уже существует. Переписать в него данные?", _ MsgBoxStyle.YesNo Or MsgBoxStyle.Question, _ "Переписать") <>MsgBoxResult.Yes) ThenExitSub EndIf ' Записьданных Try My.Computer.FileSystem.WriteAllText(TextBox1.Text, _ TextBox2.Text, False) Catch ex As Exception MsgBox("Данные в файл не могут быть переписаны из за "& _ " следующей ошибки:"& vbCrLf & vbCrLf & ex.Message) EndTry EndSub PrivateSub Button3_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button3.Click Try Dim PrintDocument1 AsNew PrintDocument AddHandler PrintDocument1.PrintPage, AddressOfMe.PrintText PrintDocument1.Print() Catch ex As Exception MessageBox.Show("Проблемыпечати", ex.ToString()) EndTry EndSub PrivateSub PrintText(ByVal sender As System.Object, _ ByVal pr As PrintPageEventArgs) pr.Graphics.DrawString(TextBox2.Text, _ New Font("arial", 12, FontStyle.Regular), Brushes.Black, 100, 150) pr.HasMorePages = False EndSub EndClass

Рис. 4.10.4-2

 

В событийной процедуре SubButton3_Click()определена переменная PrintDocument1, которая представляет объект PrintDocumentи используется для объявления обработчика ошибок и печати текстового документа.

В этой процедуре использется оператор AddHandler, который указывает, что когда возникает событие PrintPage (Печать страницы) объекта PrintDocument1, должен вызываться обработчик событий PrintText. Технически, для указания обработчика события PrintText используется оператор AddressOf, который при возникновении события передает вызовы в соответствующий обработчик событий – процедуру PrintText. Эта процедура обрабатывает событие печати, генерируемое методом PrintDocument1.Print.В конце этой процедуры свойство pr.HasMorePage устанавливается в значение False, чтобы указать, что выводимая страница последняя.

3. Запустить программу на выполнение.

Ввести путь к файлу в текстовое поле TextBox1 и нажать кнопку Открыть файл.

В текстовом поле TextBox2 отобразится содержимое текстового файла.

Нажать кнопку Печать.

На текущий принтер будет выдано содержимое текстового поля TextBox2.

 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: