[英]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.