PictureBox内で右寄せするには?


初心者  2009-11-10 19:31:45  No: 142772

VB6.0で次のようなプログラムを記入し、PictureBoxに出力しています。表示される際に右寄せにするには、どうしたらよいでしょうか。
ban = InputBox("番号を入力して下さい。", "番号入力", 0)
Picture1.Print ban


魔界の仮面弁士  2009-11-10 22:42:07  No: 142773

[VB] 右揃えで印刷を行う方法
http://support.microsoft.com/kb/413158/ja

Printer オブジェクトの場合のサンプルですが、
PictureBox に対しても応用できるかと。


GOD  2009-11-10 22:46:37  No: 142774

頭部分にスペースを入れるのはどうですか?
    ban = InputBox("番号を入力して下さい。", "番号入力", 0)
    ban = Right(Space(4) & ban, 4)    '4文字分の幅
    Picture1.Print ban

因みにTextBoxやLabelならプロパティで右寄せにすることが可能ですが。


初心者  2009-11-11 21:10:56  No: 142775

Option Explicit
    Dim ban As Integer    '番号

すみませんできませんでした。PictureBoxに連続して表示したいと考えています。

Private Sub Command1_Click()
    ban = InputBox("番号を入力して下さい。", "番号入力", 0)
    
    Do Until ban = 9999
        Picture1.Print ban
        ban = InputBox("番号を入力して下さい。", "番号入力", 0)
    Loop
    
End Sub


GOD  2009-11-12 01:38:40  No: 142776

> すみませんできませんでした。
>
どのようなプログラムを書いてできなかったのでしょうか。
「こう書いてできませんでした。」という例を示してもらわないとどの方向で進めたいのかわかりませんよ。
因みに私の方法でやるとしたら
Picture1.Print Right(Space(4) & ban, 4)
とすればできそうですが。


初心者  2009-11-12 19:11:45  No: 142777

何度もありがとうございます。
教えていただいた方法で実行して見ましたら。
下記のようなピラミッドのように表示されてしまいました。
(数字は表示の際はすべて半角です)
   1
   10
  100
完全なる右寄せにはできないのでしょうか?


魔界の仮面弁士  2009-11-12 19:22:41  No: 142778

空白文字の幅と、数字の文字幅は異なります(標準のフォントの場合)。

文字によって、そのサイズが異なる事に注意してください。たとえば、
  iiiiiiiiii
  WWWWWWWWWW
などは、フォントによっては文字幅が異なって見えてしまうでしょう。

空白で処理するのではなく、先述の URL にもありますように、
TextWidth メソッドで文字列の長さを測定し、
それを「右寄せ」に相当する座標に Print してみてください。
これであれば、標準のフォントであっても、正しく右寄せされます。

Private Sub Form_Load()
    Picture1.AutoRedraw = True
    RightDraw Picture1, "1"
    RightDraw Picture1, "10"
    RightDraw Picture1, "100"
End Sub

Private Sub RightDraw(ByVal p As Object, ByVal s As String)
    p.CurrentX = p.ScaleWidth - p.TextWidth(s)
    p.Print s
End Sub

また、描画処理に拘るのでのでなければ、Print するのではなく、
Alignment = 右寄せ に設定した TextBox を使った方が楽かと思います。


GOD  2009-11-12 19:23:42  No: 142779

対象コントロールのFont プロパティをPなし(プロポーショナルではない)
フォントに変更してください。(MS P ゴシック ---> MS ゴシック)
プロポーショナルについての知識はネットで検索してください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加