【解決方法】dgvprinter を使用するときにすべての datagridview 列を 1 ページに収める方法

プログラミングQA


dataGridView1 に 15 列あります。印刷すると、すべてが 1 ページに収まるように縮小されます。
15 の列が 1 ページにすべて表示され、1 つの列が外側にあり、2 ページ目として印刷されるようにしたいと考えています。
すべての列を 1 枚の紙に収めるにはどうすればよいですか???

私が試したこと:

C#
 private void btnStampa_Click(object sender, EventArgs e)
        {
            try
            {
                DGVPrinter printer = new DGVPrinter();
                printer.Title = "Smith Micael";
                printer.SubTitle = string.Format("print print", printer.SubTitleColor = Color.Black, printer);
                printer.SubTitleFormatFlags = StringFormatFlags.LineLimit | StringFormatFlags.NoClip;
                printer.PageNumbers = true;
                printer.PageNumberInHeader = false;
                printer.PorportionalColumns = true;
                printer.Footer = "Student";
                printer.FooterSpacing = 15;
                printer.PrintPreviewDataGridView(dataGridView1);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "print management", MessageBoxButtons.OK, MessageBoxIcon.Information);
                conn.Close();
            }
        }
    }
}

解決策 2

印刷時に DataGridView のすべての列を 1 ページに収めるには、PrintPreviewDataGridView メソッドを呼び出す前に、DGVPrinter オブジェクトの FitToPage プロパティを true に設定してみてください。 これにより、印刷時に DataGridView の列が 1 ページに収まるようにサイズ変更されます。

このプロパティを使用するようにコードを変更する方法の例を次に示します。

private void btnStampa_Click(object sender, EventArgs e)
{
    try
    {
        DGVPrinter printer = new DGVPrinter();
        printer.Title = "Smith Micael";
        printer.SubTitle = string.Format("print print", printer.SubTitleColor = Color.Black, printer);
        printer.SubTitleFormatFlags = StringFormatFlags.LineLimit | StringFormatFormatFlags.NoClip;
        printer.PageNumbers = true;
        printer.PageNumberInHeader = false;
        printer.PorportionalColumns = true;
        printer.FitToPage = true; // set FitToPage property to true
        printer.Footer = "Student";
        printer.FooterSpacing = 15;
        printer.PrintPreviewDataGridView(dataGridView1);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "print management", MessageBoxButtons.OK, MessageBoxIcon.Information);
        conn.Close();
    }
}

FitToPage プロパティを true に設定すると、DataGridView の列が印刷ページで小さく表示される場合があることに注意してください。 このプロパティと DGVPrinter オブジェクトの他の設定を試して、目的の結果が得られる適切な組み合わせを見つける必要がある場合があります。

コメント

タイトルとURLをコピーしました