Печать данных с WindowsForm в С#
Здравствуйте. При изучении С# столкнулся с задачей печати документа. Есть форма на ней tabControl1 на каждой вкладке которого в зависимости от назначения разные элементы. В основном по несколько TextBox-ов и обязательно DataGridView. Вопрос такой: воспользовавшись готовыми диалогами организации печати и предварительного просмотра смогу ли я распечатать содержимое данных элементов на одной странице и в тех местах где они расположены, если да, то как правильно это сделать? Почитал Петзольда на эту тему, но конкретных примеров схожих с моей задачей не нашел, если есть скиньте плиз.
|
Насколько я понял, задача в соотнесении координат элементов управления на форме и данных на листе, так?
Т.е. печатаем форму, но без элементов; только данные из этих элементов. |
Да вы все правильно поняли. Небольшое уточнение: данные не из всей формы, а только из одной закладки элемента TabControl, на которой размещены TextBox и DateGridView.
|
С помощью следующих методов добился печати информации из нужных мне элементов.
private void button2_Click(object sender, EventArgs e) { printPreviewDialog1.Document = printDocument1; printPreviewDialog1.ShowDialog(); } private void printPreviewDialog1_Load(object sender, EventArgs e) { } private void printDocument1_PrintPage(object sender, PrintPageEventArgs e) { int WidthDGV1 = dataGridView1.Size.Width; int HiegthDGV1 = dataGridView1.Size.Height; Bitmap bmp = new Bitmap(dataGridView1.Size.Width +WidthDGV1, dataGridView1.Size.Height+HiegthDGV1 ); dataGridView1.DrawToBitmap(bmp,dataGridView1.Bounds); e.Graphics.DrawImage(bmp,0,0); e.Graphics.DrawString(textBox1.Text,new Font("Arial", 14),Brushes.Black,new Point(430,50)); } private void button1_Click(object sender, EventArgs e) { printDocument1.Print(); } Но возникла другая проблема. Информация из DataGridView отображается только та, которая в видимой области, а та, что не помещается в видимой области dataGridview нет. Как решить эту задачу? |
Время: 12:25. |
Время: 12:25.
© OSzone.net 2001-