Как я могу отправить GridView на принтер в C # - PullRequest
1 голос
/ 14 ноября 2009

Как я могу отправить GridView на принтер в C #

Ответы [ 2 ]

2 голосов
/ 14 ноября 2009

DataGridView - это элемент управления. Насколько мне известно, для него нет функции печати. ​​

Вам нужно будет взять данные и отформатировать их в отчете (используя что-то вроде Crystal Reports или Microsoft Reporting Services).

РЕДАКТИРОВАТЬ: Вот немного больше информации о том, как это сделать: http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/dc9d3acf-ccf8-457f-ba31-ef09fb357aee

1 голос
/ 14 ноября 2009

Вы можете сделать это, используя комбинацию класса PrintDocument и вашего DataGridView DrawToBitmap(...) метода:

using System.Drawing.Printing;
private void Form1_Load(object sender, EventArgs e)
{
    PrintDocument printer = new PrintDocument();
    printer.PrintPage += printer_PrintPage;
    printer.Print();
}
void printer_PrintPage(object sender, PrintPageEventArgs e)
{
    using (Bitmap bmp = new Bitmap(dataGridView1.Width, 
        dataGridView1.Height))
    {
        dataGridView1.DrawToBitmap(bmp,
            new Rectangle(0, 0, bmp.Width, bmp.Height));
        e.Graphics.DrawImage(bmp, 0, 0);
    }
    e.HasMorePages = false;
}

Однако это может быть не совсем то, что вам нужно, поскольку при этом DataGridView будет напечатан точно так, как он выглядит в вашей форме (т.е. с видимыми полосами прокрутки и большей частью невидимых данных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...