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


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

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

Сборщик мусора
Отображение текста
Свойства BackColor, ForeColor и Text
Оптимизация средствами компилятора
Мемоизация (memoization)
Подключение к БД
Конструирование меню во время разработки
Обработка исключений и императивная защита
Редактор пользовательского интерфейса
Классы и структуры
Применение наборов элементов управления
Оптимизация приложений
Сокрытие членов базового класса в Visual C#
Редактор условий установки
Общие (статические) члены
| .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 | Создание поддержки печати. Регион сайта: Москва и Санкт-Петербург