0

他のすべての列をそのままにして、特定の列にテキストを追加したいこのコードがあります。ただし、SubItems のインデックスを 0 から 1 または 2 に増やすと、次のようなエラーが表示されます。

System.Windows.Forms.dll で 'System.ArgumentOutOfRangeException' 型の未処理の例外が発生しました

追加情報: InvalidArgument=「1」の値は「インデックス」には無効です。

これは私のコードです:

if (flag == false)
{
    string period = txt_gradingPeriod.Text;
    string numeric = txt_numValue.Text;
    int cell = 0;
    
    if (period == "1st") { cell = 1; }
    else if (period == "2nd") { cell = 2; }
    else if (period == "3rd") { cell = 3; }
    else if (period == "4th") { cell = 4; }
    
    foreach (ColumnHeader header in listView1.Columns)
    {
        if (header.Text == period)
        {
            listView1.Items[0].SubItems[cell].Text = numeric;
            break;
        }
    }
}
4

1 に答える 1

1

ListViewer にすべての項目が割り当てられていないと推測できます。ListViewer はどこに入力していますか? 複数の項目がありますか? そうでない場合、これは表示されているエラーをスローします。

コメントできないため、回答として投稿しました。

于 2015-07-21T13:45:19.407 に答える