C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 数字を右揃えしたい


(過去ログ 127 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■75491 / inTopicNo.1)  数字を右揃えしたい
  
□投稿者/ ミヤ (1回)-(2015/03/30(Mon) 14:17:40)

分類:[.NET 全般] 

VB6の時に下記の様にリストボックスに記述していたのですが、VB2010ではどのように記述すれば良いのでしょうか?
一の位を右でそろえたいのですが、001ではなくて1と表示したいです。

For i=1 to 100
List1.AddItem Format(Format(i, "##0"), "@@@")
Next i
引用返信 編集キー/
■75492 / inTopicNo.2)  Re[1]: 数字を右揃えしたい
□投稿者/ 魔界の仮面弁士 (270回)-(2015/03/30(Mon) 14:32:50)
No75491 (ミヤ さん) に返信
> VB6の時に下記の様にリストボックスに記述していたのですが、VB2010ではどのように記述すれば良いのでしょうか?
> 一の位を右でそろえたいのですが、001ではなくて1と表示したいです。

VB6 同様、固定ピッチフォントにした上でで、
フォントサイズも調整する必要がありますが:

ListBox1.BeginUpdate()
For i = 1 To 100
 ListBox1.Items.Add(String.Format("{0,3:##0}", i))
Next
ListBox1.EndUpdate()
引用返信 編集キー/
■75493 / inTopicNo.3)  Re[2]: 数字を右揃えしたい
□投稿者/ ミヤ (2回)-(2015/03/30(Mon) 14:47:38)
No75492 (魔界の仮面弁士 さん) に返信
> ■No75491 (ミヤ さん) に返信
>>VB6の時に下記の様にリストボックスに記述していたのですが、VB2010ではどのように記述すれば良いのでしょうか?
>>一の位を右でそろえたいのですが、001ではなくて1と表示したいです。
>
> VB6 同様、固定ピッチフォントにした上でで、
> フォントサイズも調整する必要がありますが:
>
> ListBox1.BeginUpdate()
> For i = 1 To 100
>  ListBox1.Items.Add(String.Format("{0,3:##0}", i))
> Next
> ListBox1.EndUpdate()

ありがとうございます。
String.Formatは検索して出てきていたのですが、フォントの設定が間違っていたようです。
解決済み
引用返信 編集キー/
■75494 / inTopicNo.4)  Re[2]: 数字を右揃えしたい
□投稿者/ 魔界の仮面弁士 (271回)-(2015/03/30(Mon) 14:50:43)
No75492 (魔界の仮面弁士) に追記
> VB6 同様、固定ピッチフォントにした上で

プロポーショナルフォントで右寄せしたいなら、
ListView で代用するという手もあります。


ListView1.HeaderStyle = ColumnHeaderStyle.None
ListView1.FullRowSelect = True
ListView1.View = View.Details '詳細モード
ListView1.Columns.Clear()
ListView1.Columns.Add("ダミー", 0) '第1列は右寄せできないのでゼロ幅列を用意
ListView1.Columns.Add("本題").TextAlign = HorizontalAlignment.Right
For i = 1 To 100
 ListView1.Items.Add("").SubItems.Add(i.ToString())
Next
引用返信 編集キー/
■75495 / inTopicNo.5)  Re[3]: 数字を右揃えしたい
□投稿者/ 魔界の仮面弁士 (272回)-(2015/03/30(Mon) 15:08:19)
No75494 (魔界の仮面弁士) に追記
>>VB6 同様、固定ピッチフォントにした上で
> プロポーショナルフォントで右寄せしたいなら、
> ListView で代用するという手もあります。

さらに別案。


Public Class Form1
  Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    '.Items.Add でも .DataSource でも OK
    ListBox1.DataSource = Enumerable.Range(1, 100).ToArray()
  End Sub

  Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
    SetRightAligh(ListBox1)
  End Sub

  Private Declare Auto Function GetWindowLong Lib "user32" _
   (ByVal hwnd As IntPtr, ByVal nIndex As Integer) As Integer
  Private Declare Auto Function SetWindowLong Lib "user32" _
   (ByVal hwnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer

  Friend Sub SetRightAligh(ByVal lst As ListBox)
    Const GWL_EXSTYLE As Integer = -20
    Const WS_EX_RTLREADING As Integer = &H2000
    Const WS_EX_RIGHT As Integer = &H1000
    Dim style As Integer = GetWindowLong(lst.Handle, GWL_EXSTYLE)
    style = style Or WS_EX_RIGHT Or WS_EX_RTLREADING
    SetWindowLong(lst.Handle, GWL_EXSTYLE, style)
  End Sub
End Class
引用返信 編集キー/
■75499 / inTopicNo.6)  Re[3]: 数字を右揃えしたい
□投稿者/ ミヤ (3回)-(2015/03/31(Tue) 14:48:38)
No75493 (ミヤ さん) に返信
> ■No75492 (魔界の仮面弁士 さん) に返信
>>■No75491 (ミヤ さん) に返信
> >>VB6の時に下記の様にリストボックスに記述していたのですが、VB2010ではどのように記述すれば良いのでしょうか?
> >>一の位を右でそろえたいのですが、001ではなくて1と表示したいです。
>>
>>VB6 同様、固定ピッチフォントにした上でで、
>>フォントサイズも調整する必要がありますが:
>>
>>ListBox1.BeginUpdate()
>>For i = 1 To 100
>> ListBox1.Items.Add(String.Format("{0,3:##0}", i))
>>Next
>>ListBox1.EndUpdate()
>
> ありがとうございます。
> String.Formatは検索して出てきていたのですが、フォントの設定が間違っていたようです。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -