Stack Overflow 全体を検索しましたが、次の回答が見つかりませんでした。
OpenFileDialogを使用している場合、開いたファイルは、プログラムを閉じるまで、プログラムから使用できないようにブロックされます。そのため、画像を開いた場合、 Windows エクスプローラーでその画像を置き換えることはできなくなりました。
これは OpenFileDialog を破棄する際の問題だと思いますが、解決方法がわかりません...
私のコード:
using (OpenFileDialog ofd = new OpenFileDialog())
{
ofd.Title = "Open Image";
ofd.Filter = "PNG Image(*.png|*.png" +
"|GIF Image(*.gif|*.gif" +
"|Bitmap Image(*.bmp|*.bmp" +
"|JPEG Compressed Image (*.jpg|*.jpg";
if (ofd.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = new Bitmap(ofd.FileName);
}
}
ブロックがこの問題を解決してくれると思っていたのusing
ですが、違います...それでもプログラムによって使用されます。画像をピクチャボックスにロードしたいので、画像を再び利用できるようにしたいです(名前を変更したり、置き換えたりすることができます...)。