Drukowanie DataGridView i podgląd

0

Witam.

Mam mały problem z podglądem drukowania kontrolki DataGridView.

Może na razie pokażę kod:

private DataGridView Data;

        public PrintForm(DataGridView d)
        {
            InitializeComponent();
            this.Data = d;
            this.PrintDialogData.Document = this.PrintDoc;
            this.PrintPreview.Document = this.PrintDoc;
        }

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

W PrintPreview powinien być podgląd. Jest to kontrolki typu: PrintPreviewControl.

I oto efekt podczas NIEZMAKSYMALIZOWANEJ aplikacji:
zle.jpg

A tutaj efekt, jaki chcę osiągnąć. (na razie działa tylko podczas zmaksymalizowanej aplikacji, co mnie nie satysfakcjonuje).
dobrze.jpg

Jak rozumiem odpowiedzialny za to jest ten kawałek kodu:

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

Czy ktoś ma pomysł jak poprawić to, w taki sposób, aby aplikacja ukazywała cały DataGridView w podglądzie nawet gdy aplikacja nie jest zmaksymalizowana?

0

Ok, problem rozwiązany.

Być może komuś się to przyda, a być może nie.
Kod jest poprawny, błąd leżał w założeniu, że DataGridView powinna mieć ustawione "Dock" na "fill", czyli powinna wypełniać cały obszar.
Wtedy Width i Height DatagridView faktycznie są mniejsze niż rzeczywisty rozmiar.

Rozwiązaniem problemu jest ustawienie "Dock" na czas drukowania na "None".
Wy nie mogliście na to wpaść, bo nie mieliście takich danych.
Być może jednak taka wskazówka zwróci uwagę innych na rzeczy związane także z typowym interfejsem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1