PictureBoxコントロール内にすでに画像があり、新しい画像を渡したいと思います。
何が起こるかというと、allpication Disposesです(そして私は例外をキャッチします:「パラメーターが無効です」)。
これは私のコードです:
using (Image img = Image.FromFile(open.FileName))
{
part.Picture = img;
pictureBox1.InitialImage = null;
pictureBox1.Image = img;
}
したがって、コードがメソッドの外に出ると、このフォームとメインフォームのDisploseに直行します。Form1が開始された行でのみ例外をキャッチします。これには、これまでに何の例外もありません。pictureBoxがペイントしている間(Paintイベント内)は何か問題があるはずですが、私はそれに責任を負いません。
私は本当にこの問題を解決する方法についてこれ以上の手がかりを持っていません。(ガベージコレクションを呼び出して)すべてのリソースをクリアするために使用しようとしましたが、何も機能していないようです。
もう1つ、「part」はリストの参照であるため、現在の画像を削除しようとすると(新しい画像に置き換えるため)、次のような別の例外が発生します。
「別のプロセスによって使用されているため、プロセスはファイルにアクセスできません」。
これは、最初の例外(新しい画像がpictureBoxにペイントされていない場合)と関係がありますか?