0

配列に読み込むように、次のようなタブ区切りファイルがあります。

string[] yourChoicesItems = File.ReadAllLines("test.txt"); 
aaaaaaaaa(tab)0.09
aaa(tab)1.25

問題は、配列をテキスト ボックスに表示すると、次のようになることです。

aaaaaaaaa    0.09
aaa    0.09

2列目を並べたい。Word ではタブ ストップを変更するだけでしたが、「タブ ストップ」 + C# を Google で検索すると、まったく異なる結果が得られました。

4

4 に答える 4

4

基本的に、テキスト ボックスは、私の知る限り、書式設定されたテキストを処理するようには設計されていません。RichTextBoxもちろんありますが、それでさえ、デフォルトでタブを希望どおりに処理できるかどうかはわかりません。

プレーンテキストボックスを使用するとフォントを固定幅に設定し、行の距離に応じて各タブを異なる数のスペースに置き換えることができます...しかし、それは基本的に表形式で表示するのが大変です実際にはその目的のために設計されていないコントロール内のデータ。

代わりに、グリッド ビューの行に沿って何かを検討する必要があります。行をタブで分割すると、各行がデータの行になります。当面のタスクには、はるかに適切なコントロールだと思います。

于 2013-03-20T19:51:40.100 に答える
1
string[] records = inputString.Split('\n');
foreach(var record in records)
{
   string[] fields = record.Split('\t');
   // do stuff with the fields, here, (independently of tabs) 
}

編集@JonSkeetは30秒で私を打ち負かしましたが、彼の答えが1つ欠けているため、このコードサンプルを残しています

于 2013-03-20T19:52:55.760 に答える
1

それらをテキスト ボックスに並べるには、入力を分割してから String.Format で結合します。

string[] parts= record.Split('\t');
string yourOutput = string.Format("{0,-15}{1}", parts[0], parts[1]);

もちろん、いくつかの入力チェックは良いでしょう...そして、あなたが求めているものはおそらく修正する必要があり、表示している部分ごとに個別のコントロールを用意する必要があります

于 2013-03-20T19:59:03.083 に答える
0

この答えを見てください。wpf と wf のどちらを使用しているかは指定していませんが、同様のものである必要があります。

于 2013-03-20T19:52:58.500 に答える