-1

5 つの画像が保存されている imageList を使用しています。そのうちの 3 つは .jpg で、2 つは .bmp です。

これらの画像を使用して、タイマーを使用してピクチャボックスの画像を変更しています-

private void timer1_Tick(object sender, EventArgs e)
    {
        pictureBox1.Image = imageList1.Images[imgIndex++];
    }

クラスのどこprivate int imgIndex = 0;に設定されていますか。Form

2 つの問題があります。まず、画像ボックスに表示される画像の解像度が非常にピクセル化されており、品質が低いためColorDepthimageListプロパティを変更してこれを解決しようとしました。また、さまざまな画像形式を使用してみました。画像サイズを変更しますが、これは機能しません。どうすればより良い解像度を得ることができますか?.gif.png

2 番目の問題は、タイマーが最後の画像に到達したときに、「InvalidArgument=Value of '5' is not valid for 'index. パラメーター名: index' imageList には 5 つの画像があり、デバッグ時にエラーが発生しましたprivate int imgIndex = 0;。これを解決するにはどうすればよいですか?

4

3 に答える 3

0

MSDN->「ImageListは通常、ListView、TreeView、ToolBarなどの他のコントロールによって使用されます」。ImageListを自分のやり方で使用できる場合もありますが、その方法で使用すると、意図しない副作用が発生する可能性があります。ImageListの代わりに画像のリストを使用してみてください。

List<Image> images = new List<Image>();

// assign images.  images.Add(...

private void timer1_Tick(object sender, EventArgs e)
    {
        pictureBox1.Image = images[imgIndex++];
    }
于 2011-09-01T12:54:17.683 に答える
0

インデックスが 0 の 5 つの画像の場合、最大インデックス サイズは 5 ではなく 4 にする必要があります。これが、値 = 5 でエラーが発生する理由です。解像度については、SizeMode プロパティを Normal に設定する必要があります。

于 2011-09-01T11:47:35.393 に答える
0

時々、フォーム リソース ファイルが画像リストに低解像度の画像形式を提供することを決定するという同じ問題が発生します。

画像リストから画像を削除し、再度追加して完全な解像度に戻す必要があります。

于 2020-06-01T13:15:04.997 に答える