2017-02-02 4 views
1

listviewの各行に数値を追加したい。既存のリストビュー行に数値を追加するC#

今、私はフォルダ内のファイル数を数え、その数を文字列配列に追加します。次にforループを使用して、この配列に数値を追加し、要素を listviewに追加します。

ただし、番号は最初の行にのみ追加されています。 enter image description here

コード:

int countFile = Directory.GetFiles(saveAnimePath + "\\Watching", "*.txt").Length; 

       string[] filesCount = new string[countFile]; 

       int number = 0; 
       for (int i = 0; i < filesCount.Length; i++) 
       { 
        number = number + 1; 
        filesCount[i] = number.ToString(); 
       } 

       foreach (var item in filesCount) 
       { 
        lvWatching.Items[0].Text = item; 
       } 

各行に番号を追加する方法は?

+0

どのようにあなたのリストビューを結合していますか? –

+1

これはwinformアプリケーションでですか?リストビューコードはどこですか? – jjj

+0

@JitendraAanadiはい、それはwinformです。それについて言及しないためにSsry。 – Bongskie

答えて

1

あなたは、各対話のためのアイテムの行を変更する必要があります。たとえばlvWatching.Items[0].Text = item;

int countFile = Directory.GetFiles(saveAnimePath + "\\Watching", "*.txt").Length; 

    int number = 0; 
    for (int i = 0; i < filesCount.Length; i++) 
    { 
     number = number + 1; 
     lvWatching.Items[i].Text = number.ToString(); 
    } 
+0

オハイオ州私はとてもばかげている:)ありがとう! – Bongskie

1

最後のforeach文では、ListViewの最初の項目だけを編集するという問題があります。代わりのforeachの

、のために使用してみて、そのようなこと:

for (var i = 0; i++; i < filesCount) 
{ 
    lvWatching.Items[i].Text = filesCount[i]; 
} 

編集

しかし、私はあなたの方法で多くのオーバーヘッドだと思います。 ディレクトリ内のすべてのファイルをリストに表示していると仮定すると、再度取得したり、カウントを取得したり、番号を割り当てたりする必要はありません。 リスト項目を繰り返し処理し、正しい番号を割り当てることができます。

全体「に割り当てる番号の操作は、」そのようなことになります。

for (var i = 0; i++; i < lvWatching.Items.Length) 
{ 
    lvWatching.Items[i].Text = i.ToString(); 
} 

をしかし、それはすべての状況では動作しませんでしたので、私は何かが足りないかもしれません。

+0

私はちょうどダムです:/、ソリューションをありがとう! – Bongskie

関連する問題