0

私はこのWordpressチュートリアルに従いました。リストビューを使用しましたが、文字列をフォーマットしようとすると、認識されません\t(ただし認識され\nます)。また、認識しませんString.Formatなど。

とにかく、タブなどを使用して文字列をフォーマットできますか?

乾杯

編集

for( i = 0; i < lstView.Items.Count;i++) 
{ 
    name = lstView.Items[i].Text; 
    state = lstView.Items[i].SubItems[1].Text; 
    country = lstView.Items[i].SubItems[2].Text; 
    line += name + "\t" + state + "\t" + country + "\n"; 
}  
StringReader reader = new StringReader(line); 

行を使用して文字列を印刷すると、文字列が結合されるため、\tは機能しません。ただし、改行の\nは機能します。スペースを使用せずに文字列をフォーマットできる方法を知っている人はいますか。

結果はこんな感じ

NameStateCountry

LongernameStateCountry

anotherNameAnotherStateAnotherCountry

1つの列に名前を付けて(表のように)並べてほしい場合は、別の列と国、次に3番目の列を記述します。

どんな提案も大歓迎です

4

1 に答える 1

1

タブが失われるのは少し奇妙ですが、一方で、個々の文字列要素 (名前、状態など) の長さが異なる場合、タブはおそらく問題になります。
代わりにできることはstring.Format()、固定列幅を使用して使用することです。
見栄えの良い出力を得るために、これには正しい列幅を決定するための解析ステップが含まれます。
これが完了したら、このようなものを使用して、タブの代わりにスペースを使用します。

string line = string.Format("{0,-20}{1,-20}{2,-20}", "name", "state", "country");

編集:スペースを使用したくないことがわかりました。
この場合、おそらく印刷アルゴリズム自体でこれを処理する必要があります。アイテムをタブで区切ってから、各行をタブで分割して、行ごとにアイテム (列) の配列を作成することもできます。
アイテムごとGraphics.DrawString()に、適切な X 位置オフセットを使用して印刷します。

Graphics.DrawStringのドキュメントを参照してください。

于 2011-05-15T21:28:17.520 に答える