Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Создание поддержки печати
8 февраля 2009

> Организация поддержки печати в приложении
1. Откройте форму Forml в окне дизайнера и перетащите на нее объект PrintDocumentc
панели Toolbox — в области компонентов появится экземпляр одноимен-
ного класса.
2. Дважды щелкните компонент Print Document I (print Document!), чтобы открыть об-
работчик по умолчанию для события PrintPage, и добавьте к нему следующий
код, отправляющий содержимое списка IstOrders на принтер:
Visual Basic .NET
DIM LeftMargin As Single = e. MarginBounds. Left
Dim TopMargin As Single = e.MarginBounds.Top
Dim MyLines As Single = 0
Dim YPosition As Single = 0
Dim Counter As Integer = 0
Dim CurrentLine As String
Dim rtiyFont As New Font("Times New Roman", 16, FontStyle. Regular, _
Graphicsllnit. Pixel)
1 Подсчитать число строк на странице.
MyLines = e.MarginBounds.Height / myFont.GetHeight(e.Graphics)
' Напечатать все строки файла, остэназ/мваясь в <онце каждой страницы.
While Counter < MyLines And ItemCounter < = IstOrders.Items.Count
CurrentLine = CType(lstOrders.Item$(ItemCounter}, String)
YPosition - TopMargin + Counter * myFont.GetHeight(e.Graphics)
e.Graphics.DrawString(CurrentLine, myFont, Brushes.Black.
LeftMargin, YPosition, Nevj StringFormat())
Counter += 1
ItemCounter += 1
End While
Если остались ненапечатанные строки, напечатать следующую страницу.
If Not (ItemCounter - IstOrders.Items.Count - 1) Then
e.HasMorePages = True
Else
e.HasMorePages - False
End If
Visual C#
float LeftMargin = e.MarginBounds.Left;
float TopMargin = e.MarginBounds.Top;
float MyLines - 0;
float YPosition = 0;
int Counter = 0;
string CurrentLine;
Font myFont = new Font("Times New Roman", 16, FontStyle.Regular,
GrapnicsUnit.Pixel):
// Подсчитать число строк на странице.
MyLines = e.MarginBounds,Height / myFont.GetHeight(e.Graphics);
// Напечатать все строки файла, останавливаясь в конце каждой страницы,
while (Counter < MyLines && ItemCounter <=
IstOrders.Items.Count - 1)
CurrentLine -: (string)lstOrders. Items[ItemCounter];
YPosition = TopMargin + Counter * myFont.GetHeight(e.Graphics);
e.Graphics.DrawString(CurrentLine, myFont, Brushes.Black,
LeftMargin, YPosition, new StringFormatO);
Counter +- 1;
IternCounter += 1;
// Если остались ненапечатанные строки, напечатать следующую страницу.
if (!(ItemCounter =- IstOrders.Items.Count - 1))
e.HasMorePages - t^ue;
else
e.HasMorePages - false;
3. Сразу после объявления метода добавьте переменную ItemCounter — она будет
управлять печатью элементов списка:
Visual Basic .NET
Dim ItemCounter As Integer
Visual C#
int ItemCounter;
4. В окне дизайнера формы Forml дважды щелкните кнопку btnPrint и добавьте к
открывшемуся обработчику вызов метода Print Document. Print, отправляющий со-
держимое списка на принтер. Установите переменную ItemCounter в ноль, что-
бы при инициации печати список печатался полностью;
Visual Basic .NET
ItemCounter = О
printDocumentl.Print()
Visual C#
ItemCounter = 0;
printDocumentl. PrintO;
5. Сохраните и протестируйте проект.

Теги: .NET

Статьи по теме:

Ограничения Foreign Key
Настройка трассировочных переключателей
Обработка и генерация исключений
Разделяемые сборки
Towards Cleaner Code II, a C# GUI Invoke/Async Helper
Преобразование кодировки символов
Организация доступа к данным и работа с объектом DataReader
Установка сборок в виде компилированных образов
Проверка на уровне поля
Реализация полиморфизма через интерфейсы
Реализация специальных возможностей на этапе проектирования
Массивы
Императивная защита по правам доступа к коду
Делегаты CTS
Извлечение типизированных данных с помощью объекта DataReader
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Создание поддержки печати. Регион сайта: Москва и Санкт-Петербург