簡體   English   中英

如何將“頁面設置”和“打印機設置”顯示為無模式表單?

[英]How to show "page setup" and "printer setup" as modeless forms?

是否可以將“頁面設置”和“打印機設置”顯示為無模式形式? 我使用的代碼如下,但該表單顯示為模態表單:

    // page setup
    private void btnPageSetup_Click(object sender, EventArgs e)
    {
        this.pageSetupDialog1.PageSettings = new PageSettings();
        this.pageSetupDialog1.PrinterSettings = this.printDocument1.PrinterSettings;
        this.pageSetupDialog1.ShowDialog();
        if (this.pageSetupDialog1.PageSettings != null)
        {
            this.printDocument1.DefaultPageSettings = this.pageSetupDialog1.PageSettings;
        }
    }

    // print setup
    private void btnPrintSetup_Click(object sender, EventArgs e)
    {
        this.pageSetupDialog1.Document = this.printDocument1;
        if (this.pageSetupDialog1.ShowDialog() == DialogResult.OK)
        {
            this.printDocument1.Print();
        }
    }

您可以通過調用Show而不是ShowDialog將表單顯示為非模態。

但是,您還必須調整代碼,因為您的主窗體將不再等待其中一個子窗體關閉以檢查用戶做了什么。

例如,您必須更改打印設置代碼,以便您的PageSetupDialog在用戶單擊OK時打印文檔本身,而不是依賴主窗體在用戶單擊OK時執行操作。

同樣,您需要更改頁面設置代碼,以便您的PageSetupDialog設置Document.DefaultPageSettings本身,而不是“返回” PageSettings屬性中的設置並依賴於處理它們的主窗體。

是否可以將“頁面設置”和“打印機設置”顯示為無模式形式? 我使用了如下代碼,但該表單顯示為模態表單:

    // page setup
    private void btnPageSetup_Click(object sender, EventArgs e)
    {
        this.pageSetupDialog1.PageSettings = new PageSettings();
        this.pageSetupDialog1.PrinterSettings = this.printDocument1.PrinterSettings;
        this.pageSetupDialog1.ShowDialog();
        if (this.pageSetupDialog1.PageSettings != null)
        {
            this.printDocument1.DefaultPageSettings = this.pageSetupDialog1.PageSettings;
        }
    }

    // print setup
    private void btnPrintSetup_Click(object sender, EventArgs e)
    {
        this.pageSetupDialog1.Document = this.printDocument1;
        if (this.pageSetupDialog1.ShowDialog() == DialogResult.OK)
        {
            this.printDocument1.Print();
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM