Member 11291660 Ответов: 2

Как мне получить координаты объекта VB.NET органы управления


Привет,теперь я делаю приложение для выставления счетов в vb.net. счет должен быть напечатан на заранее отпечатанном листе размером 6х10 дюймов.Я создал а vb.net форма и некоторые поля располагались в различном положении.Эти поля должны быть напечатаны на предварительно распечатанном листе в том точном месте, где они находились в форме.
На самом деле поле для печати может быть скорректировано (то есть положение, в котором конкретное поле должно быть напечатано на бумаге).как получить значения координат каждого элемента управления.Проблема в том, что размер формы не соответствует размеру реальной бумаги.Кто-нибудь, пожалуйста, помогите мне.
заранее спасибо.

Что я уже пробовал:

Привет,теперь я делаю приложение для выставления счетов в vb.net. счет должен быть напечатан на заранее отпечатанном листе размером 6х10 дюймов.Я создал а vb.net форма и некоторые поля располагались в различном положении.Эти поля должны быть напечатаны на предварительно распечатанном листе в том точном месте, где они находились в форме.
На самом деле поле для печати может быть скорректировано (то есть положение, в котором конкретное поле должно быть напечатано на бумаге).как получить значения координат каждого элемента управления.Проблема в том, что размер формы не соответствует размеру реальной бумаги.Кто-нибудь, пожалуйста, помогите мне.
заранее спасибо.

Member 11291660

Спасибо за ваш ответ.Я знаю, что это можно сделать с помощью класса PrintDocument.Но моя проблема заключается в том, что предварительно напечатанный лист имеет некоторые уже напечатанные поля, например
Билл нет <пустое место>
Имя клиента <пустое место>
Название материала <пустое пространство>
Режим оплаты <пустое место>
Сумма <пустое место>
Разное <пустое пространство>

На пустых местах должны быть напечатаны соответствующие данные.Формат счета принадлежит одному клиенту.Мои другие клиенты имеют тот же размер счета и те же данные для печати ,но у них есть такой формат, как
Билл нет <пустое место>
Разное <пустое пространство>
Материал <пустое пространство>
Имя клиента <пустое место>
Сумма <пустое место>
Режим оплаты <пустое место>
Порядок расположения полей может варьироваться от клиента к клиенту.Поэтому я решил сделать форму, имеющую эти поля в определенном порядке и позициях.И эти поля могут быть подвижными в форме и могут быть размещены в любом месте формы.Всякий раз, когда вносятся изменения в форму, поля печатаются на новом месте.поэтому я хочу получить координаты полей и передать эти координаты классу printdocument.Координата поля в форме не совпадает с координатой бумаги, которая у меня есть. спасибо.

2 Ответов

Рейтинг:
2

Dave Kreskowiak

Вам вообще не нужно положение элементов управления. Они не будут служить вам никакой цели и фактически мешать тому, что вы делаете вместо этого.

Следуйте совету Гриффа и просто используйте класс PrintDocument и нарисуйте текст именно там, где вам это нужно. Имейте в виду, что может потребоваться некоторое количество проб и ошибок, чтобы получить каждое поле именно там, где оно должно быть на странице.


Member 11291660

Спасибо за ваш ответ.Я знаю, что это можно сделать с помощью класса PrintDocument.Но моя проблема заключается в том, что предварительно напечатанный лист имеет некоторые уже напечатанные поля, например
Билл нет <пустое место>
Имя клиента <пустое место>
Название материала <пустое пространство>
Режим оплаты <пустое место>
Сумма <пустое место>
Разное <пустое пространство>

На пустых местах должны быть напечатаны соответствующие данные.Формат счета принадлежит одному клиенту.Мои другие клиенты имеют тот же размер счета и те же данные для печати ,но у них есть такой формат, как
Билл нет <пустое место>
Разное <пустое пространство>
Материал <пустое пространство>
Имя клиента <пустое место>
Сумма <пустое место>
Режим оплаты <пустое место>
Порядок расположения полей может варьироваться от клиента к клиенту.Поэтому я решил сделать форму, имеющую эти поля в определенном порядке и позициях.И эти поля могут быть подвижными в форме и могут быть размещены в любом месте формы.Всякий раз, когда вносятся изменения в форму, поля печатаются на новом месте.поэтому я хочу получить координаты полей и передать эти координаты классу printdocument.Координата поля в форме не совпадает с координатой бумаги, которая у меня есть. спасибо

Dave Kreskowiak

Итак, вы создаете редактор, в котором пользователь перетаскивает поля и может разместить их там, где они должны быть на странице?

Хорошо, каждый элемент управления имеет свойство Top и Left относительно верхнего левого угла элемента управления, который их содержит. Вам нужно получить эти значения и сделать некоторые математические вычисления, чтобы преобразовать эти координаты в координатное пространство страницы в PrintDocument.

Вам также необходимо знать разрешение экрана, на котором вы перемещаете элементы управления, и разрешение страницы, на которой вы печатаете.

Рейтинг:
1

OriginalGriff

Прекратите использовать элементы управления в форме и используйте Объект printdocument класса [^] вместо этого - он позволяет точно указать, что идет куда и как должно быть напечатано: цвет, расположение, шрифт, смелость, направление ... и он работает "непосредственно" на бумаге для выбранного принтера!


Member 11291660

Спасибо за ваш ответ.Я знаю, что это можно сделать с помощью класса PrintDocument.Но моя проблема заключается в том, что предварительно напечатанный лист имеет некоторые уже напечатанные поля, например
Билл нет <пустое место>
Имя клиента <пустое место>
Название материала <пустое пространство>
Режим оплаты <пустое место>
Сумма <пустое место>
Разное <пустое пространство>

На пустых местах должны быть напечатаны соответствующие данные.Формат счета принадлежит одному клиенту.Мои другие клиенты имеют тот же размер счета и те же данные для печати ,но у них есть такой формат, как
Билл нет <пустое место>
Разное <пустое пространство>
Материал <пустое пространство>
Имя клиента <пустое место>
Сумма <пустое место>
Режим оплаты <пустое место>
Порядок расположения полей может варьироваться от клиента к клиенту.Поэтому я решил сделать форму, имеющую эти поля в определенном порядке и позициях.И эти поля могут быть подвижными в форме и могут быть размещены в любом месте формы.Всякий раз, когда вносятся изменения в форму, поля печатаются на новом месте.поэтому я хочу получить координаты полей и передать эти координаты классу printdocument.Координата поля в форме не совпадает с координатой бумаги, которая у меня есть. спасибо.