-1

「ページ設定」と「プリンター設定」をモードレスフォームとして表示することはできますか? 次のコードを使用しましたが、そのフォームはモーダル フォームとして表示されます。

    // 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();
        }
    }
4

1 に答える 1

-1

Showではなくを呼び出すことで、フォームを非モーダルとして表示できますShowDialog

ただし、ユーザーが何をしたかを確認するために、メイン フォームがサブフォームの 1 つが閉じられるのを待つ必要がなくなるため、コードをシャッフルする必要もあります。

たとえば、ユーザーが をクリックしたときに動作するメイン フォームに依存するのではなく、ユーザーが をクリックしたときにPageSetupDialog ドキュメント自体を印刷するように、印刷設定コードを変更する必要があります。OKOK

同様に、プロパティで設定を「返して」、それらを処理するメイン フォームに依存するのではなく、PageSetupDialogセットDocument.DefaultPageSettings 自体を設定するようにページ設定コードを変更する必要があります。PageSettings

于 2012-11-12T10:58:55.070 に答える