2011-08-02 6 views
3

これは一般的な問題だと確信していますが、共通の解決策があるかどうかはわかりません。私の問題は、ユーザーが上記の複数行のテキストボックスをGUIで表示しているときに、問題なくスクロールすることができるときです。しかし、私が印刷するようになると、特定のテキストが、そのテキストボックスの指定された領域の下端から外に出ることがあります。複数行のテキストボックス入力を制限してすべてを印刷する

リッチテキストボックスではないため、ユーザーはページ外に出る可能性のある大きなフォントを選択することはできません。私が=に必要な場合は、花嫁を十字架に交差させる)

だから私は考えました。

文字制限を使用していますが、キャリッジを何回か返すだけで、これが最後まで下がってしまいます。私が実装する方法を完全にはよく分からないが、いずれかの権利いないようでしたあなたが言った複数行のテキストボックスを印刷するとき、あなたがしなければならないこと

最後に、私は結論に来ています

や「行」の限界入力されたテキストに合わせて、印刷された文書の領域を拡大してください。これがもっとも洗練された解決策であれば、誰も私にそのような機能を実装するための正しい方向を向けることができますか?

ユーザーが望みどおりに入力できるメモフィールドを考えてください。入力されたものがすべて印刷されていることを確認することを意図しています。

+1

あなたは間違いなくこれを印刷に取り込む方法を見つけなければなりません。印刷がうまくいかないためにユーザーの機能を制限しないでください。 – musefan

+0

確かに、特にフォントを変更するというアイデアを再導入すれば、定義された領域が印刷用にどのくらい大きくなければならないのですか? – Coops

+0

Graphics.MeasureString()を使用して一貫したフォントサイズで効果を上げましたが、リッチテキストのように同じテキスト部分にサイズが異なる場合は、最良の方法がわからない – musefan

答えて

1

yourTextBox.DrawToBitMapに電話していますか?画面上に表示されるもののビットマップを作成するだけで、プリンタの出力、行レイアウト、改行、プリンタフォント、余白、方向、ページ番号、または印刷と関係する作業は実行されません。

上記のすべての機能を処理するプリンタにテキストを送信する場合は、System.Drawing.Printing.PrintDocumentクラスを使用し、textBoxesが必要とするすべてのものを処理する必要があります。

0

なぜ、どのようにWinFormを印刷していますか?あなたの質問に答えることはできませんが、ドキュメントとしてWinFormを印刷することは、これらのタイプの問題を抱えています。アプリケーションをより多くのユーザーにリリースすると、修正する必要があるより多くの癖が発生することが保証されます。

あなたが絶対にフォームを印刷しなければならない場合、私が提供できる最良のソリューションについてTextBoxのコンテンツを制限したいのであれば、フォントを固定幅の固定幅フォントにする必要があります。それを変更してください。 TextBoxに収まる文字数を数え、その値をコントロールのMexLengthとして設定します。明らかに、ユーザは1文字を使用するが、1行全体を消費するリターン/エンターキーを押すことができることは明らかである。この問題を解決するには、TextBoxのTextChangeイベントを改行文字を処理するように変更しました。テキストから削除するか、TextBoxのMaxLengthプロパティをより小さい適切な値に更新します。

おそらく微妙な微調整では、私の推奨事項が安全にあなたが望むものを得るはずです。それでも、私はあなたのフォームに別の印刷機構を探すことを強く勧めます。

自己責任で使用してください。

+0

アドバイスをいただきありがとうございます – Coops

関連する問題