Amal anjula Ответов: 1

Печать datagridview на C#


у меня есть представление сетки данных с изображениями. теперь я хочу напечатать это. я попробовал какой-то код.но на этом пути печатается только текущий размер экрана datagridview.не все данные. пожалуйста, помогите мне. я использую .net 2013 и c#
Спасибо

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

private void button1_Click(object sender, EventArgs e)
        {
            Bitmap img1;
            Bitmap img2;

            img1 = new Bitmap(@"d:\a1.png");
            img2 = new Bitmap(@"d:\a2.png");

            this.dataGridView1.Rows.Add("date" ,"ID", img1);
            this.dataGridView1.Rows.Add("date", "ID", img2);


            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                row.Height = 100;

            }
        }

      

        private void button2_Click(object sender, EventArgs e)
        {
            printDocument1.Print();
        }

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
            dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height));
            e.Graphics.DrawImage(bm, 0, 0);
        }

1 Ответов

Рейтинг:
0

OriginalGriff

Причина, по которой он печатает только видимый раздел, проста: это то, что вы сказали ему сделать.
Когда вы используете контроль.DrawToBitmap делает именно это: выдает событие Paint для элемента управления и передает графический контекст для растрового изображения в элемент управления.Обработчик событий Paint. Таким образом, то, что вы получаете в растровом изображении, в точности совпадает с тем, что вы получаете на экране, и никогда не может отличаться.

Если вы хотите распечатать все данные DataGridViewData, вам нужно будет перебрать строки и столбцы (или лучше строки и столбцы базового источника данных) и нарисовать их самостоятельно, используя графику.Рисование Текста, Графики.DrawImage и тому подобное для ручного позиционирования, размера и визуализации данных в печатном виде.


Amal anjula

Вы можете сделать код smple за что, пожалуйста

OriginalGriff

Нет , я здесь не для того, чтобы делать за вас вашу работу, и я понятия не имею, что у вас в столе, даже если бы я был склонен это делать.
Вы должны быть разработчиком: посмотрите на документ MSDN PrintDocument doci=umentation, и вы найдете очень простой пример. Вам нужно расширить его, чтобы он соответствовал вашим потребностям.