Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как распечатать содержимое PicturBox, Нашол как сделать, но есть ньюансы 
V
    Опции темы
Pit_Bul
Дата 27.11.2006, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 2.10.2006

Репутация: нет
Всего: 1



Вот этот код вроде как должен распечатать содержимое моего PicturBox'а

Код

 Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        Dim g As Graphics
        g = e.Graphics
        g.DrawImage(pic1.Image, pic1.Left, pic1.Top, pic1.Width, 1.Height)
        g.Dispose()
        e.HasMorePages = False

    End Sub


но, почему то pic1.Image у меня нул получается, не пойму из за чего. PicturBox у меня простой белый квадрат на котором я рисую линии и текст, которые в дальнейшем надо распечатать. Если кто сталкиваался, откликнитесь
PM MAIL WWW   Вверх
DarkDragon
Дата 28.11.2006, 00:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: 5
Всего: 8



Проверь какой размер у pic1(PictureBox), если он нуль, то тогда ты и получишь то что получаешь.

Попробуй так

Код

        g.DrawImage(pic1.Image, pic1.Left, pic1.Top, pic1.Image.Width, pic1.Image.Height)


И еще если ты рисуешь линии на Pic1 путем Graphics, то ты ничего не получешь (т. к. данные поступают не в Pic1.Image, а в специальную область (hDC - казатель на эту область)):
    Нужно проделать все то что ты сделал на Pic1, тока в g (переменная адресованная на e.Graphics), тоды получишь распечатку, или же сделать следующее:

Dim bmp As New Bitmap (pic1.Width, pic1.Height)

В событии рисования (на pic1):
   dim g1 As Graphics = Graphics.FromImage (bmp)
   g1.DrawLine (...)
   e.Graphics.DrawLine (...)

Тогда данные пойдут не только на [Специальную область (hDc)], но и прямо на bmp. 
А при распечатки: g.DrawImage (bmp, 0, 0, bmp.Width, bmp.Height)
  
PM MAIL   Вверх
Pit_Bul
Дата 29.11.2006, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 2.10.2006

Репутация: нет
Всего: 1



DarkDragon, дело в том что для g.DrawImage (bmp, 0, 0, bmp.Width, bmp.Height), первый параметр должен быть Image, а не Bitmap. А нет возможности сделать так чтобы то что я рисую на pic1 ему и принадлежало, то есть облать hDC присвоить pic1
PM MAIL WWW   Вверх
ivashkanet
Дата 29.11.2006, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



Цитата(Pit_Bul @  29.11.2006,  19:40 Найти цитируемый пост)
Image, а не Bitmap

Ну и что? Bitmap --- наследник Image, пожтому приводиться к нему без вопросов.
Считай, что это Image и есть  smile

Добавлено @ 21:33 
Pit_Bul, ты рисуешь на пикчереБоксе сам? С в обработчике OnPaint?
Посто скопируй этот код в 
Код
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

Тогда на принтер пойдет то что надо.

Весь принцып в том, что тебе все равно где рисовать. На бумаге, на экране или еще где-то.
Ты занимаешься только самим рисованием, а вот от того какой тебе графикс передадут в e и будет зависеть куда попадет твой рисунок
PM MAIL WWW ICQ   Вверх
Pit_Bul
Дата 29.11.2006, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 2.10.2006

Репутация: нет
Всего: 1



DarkDragon, попробовал сделать как ты предложил, печатает чистый лист, моих линий нет smile

Добавлено @ 21:37 
ivashkanet, в точку, спасибо. Очевидное труднее всего найти

Добавлено @ 21:48 
 smile 
PM MAIL WWW   Вверх
ivashkanet
Дата 29.11.2006, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



Цитата(Pit_Bul @  29.11.2006,  20:34 Найти цитируемый пост)
ivashkanet, в точку, спасибо. Очевидное труднее всего найти 

Ну..., вобщето это не я первый предложил, а DarkDragon:
Цитата(DarkDragon @  27.11.2006,  23:10 Найти цитируемый пост)
Нужно проделать все то что ты сделал на Pic1, тока в g (переменная адресованная на e.Graphics), тоды получишь распечатку

, вот только он, почему-то не выделил это в тексте. А я не процтитировал его в конце поста, хоть и собирался (не вели кознить, о великий Темный Дракон ).

PM MAIL WWW ICQ   Вверх
Pit_Bul
Дата 29.11.2006, 21:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 2.10.2006

Репутация: нет
Всего: 1



думаю вопрос решен

Добавлено @ 21:54 
Цитата(DarkDragon @ 28.11.2006,  00:10)

    Нужно проделать все то что ты сделал на Pic1, тока в g (переменная адресованная на e.Graphics), тоды получишь распечатку

на самом деле я не увидел этого, я как то сразу на код внимание обратил, надо внимательнее читать наверное, прости DarkDragon и тебе огромнейшее спасибо smile 
PM MAIL WWW   Вверх
DarkDragon
Дата 1.12.2006, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: 5
Всего: 8



Цитата(ivashkanet @  29.11.2006,  21:49 Найти цитируемый пост)
, вот только он, почему-то не выделил это в тексте. А я не процтитировал его в конце поста, хоть и собирался (не вели кознить, о великий Темный Дракон ).


smile smile smile До тех пор пока ivashkanet ты помогаешь на форуме Vingrada, я не трону тебя, о преданный слуга народа! smile smile smile
smile А после можно будет тебя замариновать smile

Цитата(Pit_Bul @  29.11.2006,  21:49 Найти цитируемый пост)
на самом деле я не увидел этого, я как то сразу на код внимание обратил, надо внимательнее читать наверное, прости DarkDragon и тебе огромнейшее спасибо smile  


Всегда рад помочь smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0843 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.