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


* При перепечатке материалов ссылка на 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

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

Динамические свойства
Массивы
Применение класса XmlDataDocument
Cabinet File (*.CAB) Compression and Extraction – версия 9.9
Защищенные члены
Добавление элементов управления на панель Toolbox
Оптимизация средствами компилятора
Рисование сложных фигур
Реализация обработчиков событий
Пространства имен System.Drawing
Стыковка и фиксация элементов управления
Типы и пространства имен .NET
Parsing Expression Grammar Support for C# 3.0 Part 1 – PEG Lib and Parser Generator
Реализация свойств
Специальные возможности и элементы управления Windows Forms
| .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 | Создание поддержки печати. Регион сайта: Москва и Санкт-Петербург