- PR -

ListBoxの表示について

投稿者投稿内容
mimi
常連さん
会議室デビュー日: 2004/01/20
投稿数: 26
投稿日時: 2004-02-09 15:47
下記のようにListBoxへ追加をしています。

Dim i As Int16
For i = 0 To mytable.Columns.Count - 1
myRow = mytable.Rows(i)
ListBox1.Items.Add(myRow("id") & " " & myRow("name") & " " & myRow("age"))
Next

この場合、idとnameそしてageの間隔は同じになるのですが、それぞれの文字数が異なる場合、当然のことですが縦一列には並びません。
ListBoxで項目ごとに縦一列に並べる方法、または他の方法で何かよい方法をお持ちの方はお願いします。

ListBoxは選択した値を他で参照するために使用しています。
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-09 16:00
Windowsアプリなら
UseTabStopsプロパティをtrueにしてタブで区切ればうまく表示されるはずです。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-02-09 16:09
諸農です。

String.Format()を使うのは如何でしょうか。

コード:
for(int i=0;i<20;i++)
{
    string para = "あかさたな" + i.ToString();
    listBox1.Items.Add(String.Format("{0,-20}{1,10} {2,-20}",para,para,para));
}


C#で申し訳ないm(_ _)m


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-09 16:14
 String.Formatメソッド。

 う〜ん、説明は難しい。MSDNを読み解くのは、おそらくもっと難しい。。。とりあえず、こんな風にします。

ListBox1.Items.Add(String.Format("{0:###} {1,10} {2:##}", _
new Object() {myRow("id"), myRow("name"), myRow("age")})

 MSDNのトピック「書式指定子」を、しっかり読んでください。


 あ、悩んでいる間にゆうじゅんさんのコメントが・・・それも簡単でいいなと思うけど、数字は「右揃え」で表示したいと思うので、やっぱり送信。

 それから、特に理由がないならInt16ではなく、Int32を使用しましょう。32ビット環境ですから、こちらの方がPCも計算しやすい/ムダがないです。

さらに悩んでいる間にかぶった・・・

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-02-09 16:14 ]
mimi
常連さん
会議室デビュー日: 2004/01/20
投稿数: 26
投稿日時: 2004-02-09 16:14
お返事ありがとうございます。
Windowsアプリで、UseTabStopsプロパティはtrueになっています。
具体的に、先ほど示したプログラムをどのように変更すればよいのか、簡単に書いていただけないでしょうか?
無理なお願いだとは思いますがよろしくお願いします。
dai
ベテラン
会議室デビュー日: 2001/08/28
投稿数: 85
投稿日時: 2004-02-09 16:27
MSDN (Visual Studio .NET ドキュメント) は、見てみましたか?
サンプルが載っていますよ。

Web版 →
http://www.microsoft.com/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformslistboxclassusetabstopstopic.asp
ゆうじゅん
ぬし
会議室デビュー日: 2004/01/16
投稿数: 347
投稿日時: 2004-02-09 16:30
引用:

mimiさんの書き込み (2004-02-09 16:14) より:
お返事ありがとうございます。
Windowsアプリで、UseTabStopsプロパティはtrueになっています。
具体的に、先ほど示したプログラムをどのように変更すればよいのか、簡単に書いていただけないでしょうか?
無理なお願いだとは思いますがよろしくお願いします。



TAB文字を展開してくれるので単純に区切りをタブ「\t」にすればいいですよ

PS
String.Formatもいいと思いますが名前に半角、全角が混在している場合にうまく
うごかくなると思います。(Byte単位でスペースうめたい・・・・)
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2004-02-09 16:35
Tipsにありました。>書式設定

http://www.atmarkit.co.jp/fdotnet/dotnettips/116formatint/formatint.html

数値のみ・・・もう少し増えると嬉しい、かも。

スキルアップ/キャリアアップ(JOB@IT)