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

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

Редактор нестандартных действий
Обеспечение совместимости с замещенными или скрытыми членами
Создание экземпляров пользовательских типов
Анти-паттерны в действии или Самые популярные ошибки программистов
Редактор условий установки
Объект DataRelation
Переменные методов
Оптимизация приложений
Свойства, доступные только для чтения или только для записи
Принципы дизайна интерфейса
Наборы
Ссылки на внешние библиотеки
Ввод кода с помощью CodeInsight
Локальные функции
Системные кисти, перья и цвета
| .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


     



Данный сайт или домен продается

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