質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
印刷

印刷とは、インキを用いて紙などの被印刷物に機械的に複製することを指します。現在は紙などの2次元の媒体だけでなく、3次元の曲面にも直接印刷する技術など様々な開発が進んでいます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

2090閲覧

PrintDialogの「印刷」ボタンを「OK」ボタンに変更したい

juntaro

総合スコア15

印刷

印刷とは、インキを用いて紙などの被印刷物に機械的に複製することを指します。現在は紙などの2次元の媒体だけでなく、3次元の曲面にも直接印刷する技術など様々な開発が進んでいます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

.NET Framework

.NET Framework は、Microsoft Windowsのオペレーティングシステムのために開発されたソフトウェア開発環境/実行環境です。多くのプログラミング言語をサポートしています。

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

0グッド

0クリップ

投稿2019/10/23 02:30

編集2019/10/23 02:34

System.Windows.Controls.PrintDialog を使用しています。
現状、「印刷」・「キャンセル」・「適用」ボタンが表示されています。

印刷する前に PrintDialog を画面表示するのではなく、独自の印刷設定(プレビュー画面含む)からプリンター選択として
呼び出す為、「印刷」ではなく「OK」が望ましいと考えています。
「印刷」ボタンを「OK」ボタンに変えることは可能でしょうか?
また、「適用」ボタンを押した際の動作がよく理解できておりません。
併せて、ご教示頂ければ幸いです。

当方、初心者ですので、考え方が全然間違っている場合はご指摘頂ければと思います。

よろしくお願いします。

開発環境:Visual Studio 2017 (WPF)
ターゲットフレームワーク:.NET Framework 4.6.1
動作環境:Windows10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「印刷」ボタンを「OK」ボタンに変えることは可能でしょうか?

通常は不可能(※)です。System.Windows.Controls.PrintDialogは、印刷用の標準のダイアログボックスを表示することを目的とするクラスですので、そのような機能(プロパティ等)は提供されていません。

通常は不可能ですが、Windows APIを利用して、「印刷(P)」ボタンのウィンドウウハンドルを取得し、SetWindowTextを使って文字列"OK"をセットすれば
少なくとも表示上はできるかもしれません。ですが、不作法ですし、まともに動作するかも分かりません。使い方として間違っています。

また、「適用」ボタンを押した際の動作がよく理解できておりません。

「適用」ボタンは、ダイアログボックス中で何かしらの設定、たとえばページ範囲や部数などの設定をしたとき、ダイアログボックスを終了させずに設定を保存するために使います。この辺りのUIの流儀は、他のウィンドウ(タブ付きのウィンドウやプロパティシート、プロパティウィンドウなど)の流儀に沿います。

投稿2019/10/23 02:44

dodox86

総合スコア9183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

juntaro

2019/10/23 03:03

dodox86さん、早急かつ適用の件も含めた親切なご回答、ありがとうございます。 通常は無理で、API使用で変更出来ること、理解しました。 最悪、必要であれば検討しますが、私も不作法であることを理解し、出来ればしない方向で考えます。 ただ、通常はこういったケースをどうすれば良いのでしょうか? 自力で作成するべきということですかね。 何故か、System.Windows.Forms.PrintDialog は 「印刷」ボタンではなく、「OK」ボタンだったり、 たまたま見つけたPrintDialogを説明しているサイト ( https://dobon.net/vb/dotnet/graphics/printdialog.html ) の画像が「OK」ボタンになっていたこともあり、何か方法があるのではと質問させて頂きました。
dodox86

2019/10/23 03:19 編集

「OK」ボタンがあるDOBON.NETさんのサイトの例示は、Windows XPでの例のようですね。印刷ダイアログの外観は、Windowsのバージョンや、各社のプリンタードライバー類のインストール状況で変わることがあります。そんな中には「印刷」、「キャンセル」、「適用」ボタンではないものもあるかもしれません。若干記憶が不確かですが、Windowsの「通常使うプリンター」の設定を変えると、それらのものに切り替わった気がします。(<試してみてください)PrintDialogクラスは「今、Windows上でユーザーが標準で使っているプリンターの印刷ダイアログを表示するもの」と言い方を変えても良いかもしれません。
juntaro

2019/10/23 09:37

ご回答、ありがとうございました。 「通常使うプリンター」の設定を変更してみましたが同様でした。 System.Windows.Forms.PrintDialog を使用する方向で考えてみたいと思います。 とても助かりました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問