0

そのため、litview サブアイテムから ByteCount を取得しようとしていますが、常に負のエラーが表示されます: [Argument OutOfRangeException was unhandled: 'count' mustn't be negative, Parameter name: count] これは、エラーが発生するコード行です:

bw.Write(enc.GetBytes(listView1.Items[i].SubItems[3].Text + (new string('\0',dbytecnt - enc.GetByteCount(listView1.Items[i].SubItems[3].Text)))));

私はこれを試しました:

 if (enc.GetByteCount(listView1.Items[i].SubItems[3].Text) > 0)
                {
                    bw.Write(enc.GetBytes(listView1.Items[i].SubItems[3].Text + (new string('\0',dbytecnt - enc.GetByteCount(listView1.Items[i].SubItems[3].Text)))));
                }

動作せず、if 条件を '> -1' にしても同じ結果になります。

4

1 に答える 1

1

例外はArgumentOutOfRangeExceptionon パラメータcountです。おそらく、この例外をスローするのは文字列コンストラクターであり、GetByteCount.

これは、減算の結果dbytecnt - enc.GetByteCount(listView1.Items[i].SubItems[3].Text)が負であることを意味します。

これを試して:

if (dbytecnt - enc.GetByteCount(listView1.Items[i].SubItems[3].Text) > 0)
{
    bw.Write(enc.GetBytes(listView1.Items[i].SubItems[3].Text + (new string('\0',dbytecnt - enc.GetByteCount(listView1.Items[i].SubItems[3].Text)))));
}
于 2013-07-23T00:40:28.583 に答える