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

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

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

Re[2]: \tのような簡単に列を表現する方法は…?


(過去ログ 44 を表示中)

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

■22928 / inTopicNo.1)  \tのような簡単に列を表現する方法は…?
  
□投稿者/ コバヤシ (5回)-(2008/08/05(Tue) 23:03:44)

分類:[.NET 全般] 

たびたびすいません…大変お世話になります。

TreeViewにて次のような感じで
ファイル名と更新日付を表示したいのですが

--------------------------------
├sample.txt   2008/08/05
├sample2.tx 2008/08/05
├sampl.txt    2008/08/05
├sample40ne.txt 2008/08/05
├samplefile.txt 2008/08/05
└sampl6.txt 2008/08/05
--------------------------------

ListBoxのように\tのタブが有効にならないで日付部分が縦にそろって表示できません。
フォントでFixedSysみたいに横幅が一定のがあれば昔みたいに右にスペースをいくつか追加して
左から10文字切って…みたいなアスキーアートみたいな技ができるんですが
最近のPCはFixedSysも入っていないようで…

Textの途中で縦にそろえるとなるとオーナードローしかないのでしょうか…

もしわかる方がいられましたら、アドバイスをお願いいたします…

引用返信 編集キー/
■22933 / inTopicNo.2)  Re[1]: \tのような簡単に列を表現する方法は…?
□投稿者/ ま (94回)-(2008/08/06(Wed) 00:24:57)
2008/08/06(Wed) 00:28:01 編集(投稿者)
No22928 (コバヤシ さん) に返信

        tv.Font = New Font(FontFamily.GenericMonospace, 10)
        tv.Nodes.Add(New TreeNode("├sample.txt       2008/08/05"))
        tv.Nodes.Add(New TreeNode("├sample2.tx       2008/08/05"))
        tv.Nodes.Add(New TreeNode("├sampl.txt        2008/08/05"))
        tv.Nodes.Add(New TreeNode("├sample40ne.txt   2008/08/05"))
        tv.Nodes.Add(New TreeNode("├samplefile.txt   2008/08/05"))
        tv.Nodes.Add(New TreeNode("└sampl6.txt       2008/08/05"))
タブを幾つか入れることで自動的に桁あわせするメソッドとか大丈夫ですか?
上記は、1〜2個のタブが入っています。<削除>タブ8</削除>で。

訂正:タブ4だわ。

引用返信 編集キー/
■22941 / inTopicNo.3)  Re[1]: \tのような簡単に列を表現する方法は…?
□投稿者/ 魔界の仮面弁士 (800回)-(2008/08/06(Wed) 09:31:44)
2008/08/06(Wed) 09:37:13 編集(投稿者)
No22928 (コバヤシ さん) に返信
> フォントでFixedSysみたいに横幅が一定のがあれば昔みたいに右にスペースをいくつか追加して
> 左から10文字切って…みたいなアスキーアートみたいな技ができるんですが

[MS ゴシック 9pt] などの固定幅フォントを使えないでしょうか。


import Accessibility;
import System;
import System.Drawing;
import System.Windows.Forms;
class Form1 extends Form {
  var tvw : TreeView;
  function Form1() {
    Controls.Add(tvw = new TreeView());
    tvw.Dock = DockStyle.Fill;
    //tvw.Font = new System.Drawing.Font("MS P Gothic", 9);
    //tvw.Font = new System.Drawing.Font("MS UI Gothic", 9);

    tvw.Font = new System.Drawing.Font("MS Gothic", 9);  //固定幅フォント

    var root:TreeNode = tvw.Nodes.Add("C:");
    var $ = root.Nodes.Add;
    $(NewNode("sample.txt", new Date(2008, 7, 5)));
    $(NewNode("sampあle2.tx", new Date(2008, 7, 5)));
    $(NewNode("sampl.txt", new Date(2008, 7, 5)));
    $(NewNode("sample40ne.txt", new Date(2008, 7, 5)));
    $(NewNode("samplefile.txt", new Date(2008, 7, 5)));
    $(NewNode("sampl6.txt", new Date(2008, 7, 5)));
    root.ExpandAll();
  }

  function NewNode(file:String, date:DateTime):TreeNode {
    // ファイル名は左寄せ 18 文字。(実際には、全角文字への対応も必要)
    return new TreeNode(String.Format("{0,-18}\t{1:yyyy/MM/dd}", file, date));
  }
}
Application.Run(new Form1());

引用返信 編集キー/
■23576 / inTopicNo.4)  Re[2]: \tのような簡単に列を表現する方法は…?
□投稿者/ コバヤシ (6回)-(2008/08/18(Mon) 21:45:15)
返信遅れまして申し訳ありません。

■ま様
ご回答していただきまして ありがとうございました

>タブを幾つか入れることで自動的に桁あわせするメソッド

がちょっとよくわからなかったので調べてみました。
やってみたのですが、うまくタブを入れることができなくて…
とりあえず固定幅フォントがわかりましたので、それでやってみようと思います。

ありがとうございました。




■魔界の仮面弁士様
ご回答していただきまして ありがとうございました
固定幅フォント…MS ゴシックがそうだとは知りませんでした…
てっきりFixedSysだけだと思っていたのと MS Pゴシック をいつも使っていたので
同じように幅が変わるのかと思ってました…

MSゴシックにてやろうと思います。

あおれとちょっとtreeviewを使うのに戸惑っていまして
ソースありがたかったです。
大変参考になりました。

さっそく参考に作りこんでいこうと思います。

ありがとうございました。

解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -