Member 13458722 Ответов: 1

На самом деле печать с принтера VB.NET


Привет, у меня есть таблица в моей базе данных, которую мне удалось загрузить в datagridview. И когда я нажимаю кнопку печать, мне удается сделать предварительный просмотр печати, чтобы пользователь мог видеть, что он будет печатать, однако у меня есть небольшая проблема. Когда я нажимаю кнопку печать, он просто говорит печать и на самом деле ничего не печатает в моем принтере. Я даже не могу выбрать пункт назначения. Можно ли печатать на реальном принтере в VB.NET-да. Если так, то что же я делаю не так? Я новичок, пожалуйста, полегче. Вот вам и код.
Imports MySql.Data.MySqlClient

Public Class 
   
    Private size As Bitmap
    Private Sub BtnPrint_Click(sender As Object, e As EventArgs) Handles BtnPrint.Click
    
        baseScores.Height = DgvDatabaseScores.RowCount * baseScores.RowTemplate.Height
        size = New Bitmap(Me.baseScores.Width, Me.baseScores.Height)
        baseScores.DrawToBitmap(Map, New Rectangle(0, 0, Me.baseScores.Width, Me.baseScores.Height))
        PrintPreviewDialog1.Document = PrintDocument1
     
        PrintPreviewDialog1.ShowDialog()



    End Sub

What I have tried:

The code above but wont print PLEASE HELP have tried so hard

1 Ответов

Рейтинг:
2

OriginalGriff

Это, вероятно, потому, что ваша работа печати никогда не заканчивается. Поскольку ваш код никогда не меняется DgvDatabaseScores.Height или ShapeRectangle.Height если оно начинается с того, что условие истинно, оно всегда будет истинным, и ваша работа печати никогда не закончится.

Попробуйте установить e.HasMorePages к False в конце вашего обработчика событий PrintPage независимо от того, чтобы сказать ему остановиться и посмотреть, улучшит ли это ситуацию.


Member 13458722

Спасибо, что это сработало. Кроме того, в то время как ваш здесь при использовании предварительного просмотра печати количество страниц, которые я могу выбрать для печати в правом верхнем углу, кажется, не работает. Это не позволит мне увеличить количество страниц. Есть идеи?

OriginalGriff

HasMorePages управляет количеством страниц: если вы установите значение false на первой странице eth, это означает только одну страницу, поэтому вы не можете увеличить это число. Если вы хотите больше, вам нужно найти способ исправить ваше условие if так, чтобы оно действительно завершилось и вернуло HasMorePages как false в какой-то момент. Использование условия, которое изменяется после печати страницы, может помочь...

Richard MacCutchan

[ОРФОГРАФИЧЕСКАЯ ПОЛИЦИЯ]
Это "the", а не "eth". Этх был персонажем в Глумах. ;)
[/ОРФОГРАФИЧЕСКАЯ ПОЛИЦИЯ]

OriginalGriff

Это особенность, а не ошибка - это в руководстве. Проверьте мой профиль!

OriginalGriff

[ГРАММАТИЧЕСКАЯ ПОЛИЦИЯ]
.. и кстати: это "ты", а не "твой".
"Ваш" показывает, что что-то принадлежит "вам" или связано с "вами" (например, "ваша машина", "ваш отец").
"Ты есть" - это сокращение от "ты есть". Если вы не можете расширить его до "вы есть" в своем предложении, тогда это неправильно.
[/ГРАММАТИЧЕСКАЯ ПОЛИЦИЯ]