• ベストアンサー

ラベル表示の桁をそろえたいです。

Dim FileLen as long にあるファイルの容量を代入して、 ラベルに表示するために、 Label1.Text = FileLen & "バイト" としているのですが、 これだと、表示が 「100バイト     」になったり 「1000000000000バイト」になったり、「バイト」の位置が 動いてしまいます。 「100     バイト」「1000000000000バイト」になるように 「バイト」の位置を固定したいのですが、 ラベルを複数に分けないで実現する方法がありましたら、 教えて頂けないでしょうか。 宜しくお願い致します。 環境はVB.NET+Framework1.1です。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

String型の PadLeft/PadRightメソッドなどがお役に立つと思います   Label1.Text = FileLen.ToString.PadRight(13," ") & "バイト" といった具合に使います PadLeft/PadRightの単に空白で埋めるのでしたら引数一つの   Label1.Text = FileLen.ToString.PadRight(13) & "バイト" といった具合でも良いですよ 引数の数字は最終的に出来上がる文字列の長さになります # もともとの文字列がこの引数より長いときは空白の追加は # 実行されません

popopompom
質問者

お礼

ご回答ありがとうございます。 とても便利ですね。 良い方法を教えて頂きありがとうございました。

その他の回答 (1)

  • dameryman
  • ベストアンサー率35% (24/68)
回答No.1

あまりスマートではないですが・・・ ファイル容量の桁数を判別する分岐を作って桁が少ないようならその分スペースを追記するようにすればよいのでは? Select Case FileLen case < 10 Label1.Text = FileLen & "スペース9個" & "バイト" case < 100 Label1.Text = FileLen & "スペース8個" & "バイト" case < 1000 Label1.Text = FileLen & "スペース7個" & "バイト" 以下略 みたいな。スペースの数は適宜調整していただくとして・・・ VBあんまり詳しくないんで文法間違ってたらすみません。

popopompom
質問者

お礼

お返事ありがとうございます。 私的にはこちらの方法も分かりやすくて気に入ったのですが、 今回はPadLeft/PadRightの方法でやってみたいと思います。 ご回答ありがとうございました。

関連するQ&A

  • VBでラベルの大きさと文字数によってフォントサイズが変化するプログラムについて

    VBで、「ラベル」っての、ありますよね。そこに入力された文字数とラベルの大きさによって、フォントサイズを変化させるプログラムを書いたのですが、うまくいきません。何が間違っているのでしょうか? Private Sub name_text_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles name_text.KeyUp Dim nam As Byte nam = Len(name_text.Text) Dim FSize As Short If nam = 2 Then FSize = 36 FSize = Label.Font.Size ElseIf nam = 3 Then FSize = 25 FSize = Label.Font.Size End If Label.Text = TextBox.Text End Sub 何が間違ってますでしょうか?お願いします。

  • VB2010でラベルに文字を結合したい

    VB2010でTextboxで辺の長さの数値を入力し、その数値分「*」を表示して正方形を作るアルゴリズムを考えています。どんな感じかは添付画像を参照していただければと思います。 Dim saizu As Integer Dim i, j As Integer saizu = TextBox1.Text For i = 1 To saizu For j = 1 To saizu Label1.Text = "*" Next Label1.Text = vbLf Next 考え方はこんな感じだと思うのですが、このままだとLabel1の中身が毎回更新されてしまい、結局何も表示されないという結果になることに気づきました。 確かVBにはLabelの手前に何か連結演算子のようなものをつけることで、更新されるのではなく追加していくというふうにできたと思うのです(記憶違いならこの質問自体が意味のないことになってしまうのですが…)。検索エンジンでいろいろと検索しては見たのですが、検索ワードがどれも曖昧な所為か私が必要としている答えにたどり着くことができませんでした。 曖昧な質問で申し訳ないのですが、Labelなどで文字を更新するのではなく結合する連結演算子のようなものを回答していただけたらありがたいです。もし、そんなものはないよ、という場合も教えていただければと思います。よろしくおねがいします。

  • ボタンを押すとラベルの文字をかえるには

    VB2008エクスプレスを使っています 初歩的な質問なんですが フォームにボタンとラベルを貼って ボタンを押すとラベルの文字が変わるように設定したいです buttun1クラスで clickメドットで Label1.Text = Label.text("") で("")内に文字を入力したんですが エラーになってしまします

  • VB、教えてください。

    VB、教えてください。 5つのラベルが縦に並んでいます。 label0 label1 label2 label3 label4 あらかじめ、 Dim m as integer=0 を宣言し、 どうにかして "label"という文字列とmという数字をくっつけ、 label0 label1… という風にできないでしょうか。 そして label"m".text=10*m というような表示を作りたいのですが。 下記のようなイメージです。分かりにくかったらごめんなさい。 Public Class Form1 Dim m As Integer = 0 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click lblmessage(+("m").Text = 10*m m = m + 1 End Sub End Class

  • ラベルが表示されない

    Visual Basic 2010 Express windows7 Pro ボタンをクリックしたときに、まずラベルに表示させ、 Label1.Text = "実行中です" Shell("cmd /c @echo aaa > sss.txt", AppWinStyle.Hide, True) ・ ・ 複数のコマンドプロンプトを実行 ・ Shell("cmd /c @echo aaa > sss.txt", AppWinStyle.Hide, True) Label1.Text = "終了しました" 終わったら、またラベルに表示させたいのですが、実行中が表示されず 終わった時の終了しましたしか表示されません。 実行している時間は1分以上あるので、終了まで時間が短すぎてすぐ消えている訳ではありません。 実行中の次の行に MsgBox("テスト")として、動作が止まると、ラベルに実行中と表示されます。 止めずに実行中と表示させる方法はあるでしょうか?

  • プログラミングvbについて質問

    vb2012です。たとえば dim D as double D=1/3 label1.text=D としたときに、label1のテキストが0.333333333333333らへんで止まってしまうのですが、これはどうすればいいでしょうか。

  • 操作するラベルを動的に変化させたい

    Label1~Label10のラベルがあり ボタンを押すと1~10までの乱数が発生し 対応したラベルの表示が変わるというプログラムを作っています。 以下のようなswitch文で、1の場合はLabel1、10の場合はLabel10、という風にはできるのですが そうではなく、Labelという文字列に乱数をひっつけてそれを操作ラベル名としたいのですが、やりかたが分からなくて困っています。 switch(乱数){ case 1: Label1->Text = "Hello, World!"; break;         ・         ・         ・ case 10: Label10->Text = "Goodbye, World!"; break; } どなたかアドバイスをよろしくお願い致します。

  • VB2010にて、ラベルの文字を6文字目で改行して表示したいのですが可

    VB2010にて、ラベルの文字を6文字目で改行して表示したいのですが可能でしょうか? Label5.***文字数指定*** のようなコードがあれば助かるのですが、 どなたかご存知でしたら教えてください。 よろしくお願いいたします。 Label5.text="あいうえおかきくけこ" 【表示】 あいうえお かきくけこ

  • ラベルの改行

    VB2008EEです。 Label1.Text = "あいうえお" & Chr(13) & Chr(10) & "かきくけこ" 上記をFormに記述すると改行できるのですが、これは実行しないと表示されません。 LabelのプロパティのTextの文字で、エディタ上で改行して表示させる事は出来るでしょうか?

  • ラベルの大きさを変えるには

    VB初心者です。 VB2005express editionを使っています。 電卓を作ろうと思い表示画面にラベルを使おうとしたのですが、 ラベルの大きさが画面上でドラッグしてもプロパティのサイズの値を入力しても変えることができません。 テキストボックスも同じようになります。 ボタンは任意の大きさにできます。 これは何が悪いのでしょうか? ラベルは任意の大きさにできないのでしょうか?

専門家に質問してみよう