
フォーム上に表示されている各項目を印刷したいのですが、左揃えの文字は普通に座標指定するだけで問題ないのですが、桁数の違う数字を右揃えで統一して印刷したい場合の方法を教えていただきたく、よろしくお願いいたします。
以前、上記の内容の質問をさせていただきましたところ、String.Formatを使えばよいとのご回答をいただきました。いろいろと調べてみたのですが、実際にどのようにコードに記述すればよいのかがわからずにおります。現在、フォーム上の項目のうち、数値が入力されている項目を印刷するためのコードを次のように記述しています。
'数値の印刷位置
e.Graphics.DrawString(Suuchi1.Text, New Font("MS ゴシック", 12), New SolidBrush(Color.Black), 380, 100)
e.Graphics.DrawString(Suuchi2.Text, New Font("MS ゴシック", 12), New SolidBrush(Color.Black), 380, 150)
e.Graphics.DrawString(Suuchi3.Text, New Font("MS ゴシック", 12), New SolidBrush(Color.Black), 380, 200)
e.Graphics.DrawString(Suuchi4.Text, New Font("MS ゴシック", 12), New SolidBrush(Color.Black), 380, 250)
e.Graphics.DrawString(Suuchi5.Text, New Font("MS ゴシック", 12), New SolidBrush(Color.Black), 380, 300)
'ここまで
これらの数値を右揃えで印刷したい場合、どのようにコードを記述したらよいのか、アドバイスを願います。上記のコードよりももっとスマートなコード記述で、私が望んでいる様な印刷結果を実現できるようでしたら、ご教授のほどよろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
(回答No.1の補足への回答です)
e.Graphics.DrawString(Suuchi1.Text, New Font("MS ゴシック", 12), New SolidBrush(Color.Black), 380, 100)
となっているところを
e.Graphics.DrawString(Suuchi1.Text, New Font("MS ゴシック", 12), New SolidBrush(Color.Black), 380 - e.Graphics.MeasureString(Suuchi1.Text, New Font("MS ゴシック", 12)).Width, 100)
と変更(追加)すると、「座標(380,100)から左詰」が、「座標(380,100)まで右詰」に変わるかと思います。
ありがとうございます。ご回答いただいたコード記述で、私が望んでいたとおりの結果を得ることができました。完璧です。ほんとうにありがとうございます。感謝いたします。
No.3
- 回答日時:
#2>
Suuchi1.Textの中身は、結局文字列ですので、決めた文字数の幅にしてやればいいです。
例えば、
Suuchi1.Textに"1234"が入っていて、10文字の幅を持たせたいという場合
Suuchi1.Textに直接変更すると、内容が変わってしまいますから出力用の変数を用意して
Dim outStr as String
outStr=String.Format("{0,10}",Suuchi1.Text))
e.Graphics.DrawString(outStr, New Font("MS ゴシック", 12), New SolidBrush(Color.Black), 380, 100)
というようにしてやればいいと思います。
この回答への補足
ありがとうございます。たびたびの回答をしていただき感謝しきりです。
現在、数値の印刷結果がセンター揃えになってしまっており、苦戦しております。
何度もご回答をいただき、ありがとうございます。
String.Formatでの対処法、現在なぜかセンター揃えになってしまっているのですが、String.Formatでの右揃えもできるよう、いろいろ試してみます。
とりあえず、現在は回答No.1&No.4様に教えていただいた方法で、私が望むとおりの結果を得ることができました。
回答No.2&No.3様には質問当初からのご回答をいただき、大変感謝しています。ありがとうございます。
No.2
- 回答日時:
String.Formatを使うというのは、要するに、
Suuchi1~5の幅を揃えて、数値の無い部分に空白を埋めるのに使うという意味です。
なので、このまま、等幅フォントで同じ位置から書き出せばいいかと思います。
空白が他の文字と厳密には等幅にならないというようなことでしたら、この方法はうまくないです。
この回答への補足
再度のご回答ありがとうございます。
おっしゃっている内容についてはイメージできるのですが、実際のコード記述がわからずに苦労しているところです。
TextBox1.Textの数値を実際に右寄せで印刷するためのコード記述を教えていただけるとありがたいのですが。。。
No.1
- 回答日時:
若干遠回りになりますが
1. Graphics.MeasureStringを使って「数値を描画した際の全体の横幅」を取得する。
2. 右揃えの座標からその横幅を減じた場所を起点として、Graphics.DrawStringで数値を描画する。
という手順ではいかがでしょうか。
この場合、String.Formatを使用する必要はありません。
この回答への補足
ご回答いただきありがとうございます。おっしゃっている内容、方法論は十分理解できるのですが、それを実際に実現するためのコードの記述がわかりません。
力不足で申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- HTML・CSS HTMLで特定の文字だけ色を変えたいのですが、指定した色と違う色が反映してしまいます。 下記、「前」 5 2023/06/27 12:08
- HTML・CSS スマホ表示用のwebページ、style.cssでは表の中の文字 font-size は指定できない? 1 2023/03/27 18:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マウスカーソルの移動
-
エディットボックスの色変更に...
-
エクセルVBAで画像を貼り付ける...
-
VBでお絵かきソフトを作ってい...
-
PostScriptについて
-
C#で、画像の、指定した座標の...
-
DirectX テクスチャの拡大
-
C言語でグラフ作成??
-
VBでクリックイベントを発生さ...
-
画像中のある座標でマウスオー...
-
VBAで ScreenToClient を使いたい
-
VB.NET DataGridViewでIsNewRo...
-
エクセルで、日付を入力すると...
-
「ご処理進めて頂きますようお...
-
銀行の窓口処理の件で知ってる...
-
エクセルVBAで、MsgBox やInput...
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
【Excel VBA】マクロボタンを表...
-
DoEventsがやはり分からない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#で、画像の、指定した座標の...
-
UWSC画像認識で座標の位置がず...
-
C言語でグラフ作成??
-
Excel VBAで他アプリケーション...
-
VBA HTML要素または文字の座標...
-
uwscについて、同一の画像(仮...
-
VBでクリックイベントを発生さ...
-
エクセルVBAで画像を貼り付ける...
-
マウスイベントが動かない
-
UWSCのプログラミングついて教...
-
PostScriptについて
-
VBでデスクトップ上のアイコン...
-
UWSCのCHKIMG関数について
-
LineTo,MoveToについて
-
マウスカーソルの移動
-
UWSファイルの編集?
-
DirectX テクスチャの拡大
-
VBAで ScreenToClient を使いたい
-
高さのあるクォータービューの...
-
UWSCでPEEKCOLORを使い指定ウィ...
おすすめ情報