winform PictureBox重复载入图片,图却没有刷新

Dreamia 2019-05-23 02:44:49
目前在做一个项目,winform与另一个平台交互,那个平台每次会将验证码图片保存到一个共享目录,图片名字是相同的,例如“ABC.jpg”。
我做的Winform收到消息后,会弹出一个输入窗口,显示这张图片,让用户输入图片上的验证码。

AutoIt.frmCheckCode form2 = new AutoIt.frmCheckCode();
form2.GetPicture("ABC.jpg");
form2.ShowDialog();
MsgBox(form2.txtCheckCode.Text + "!", 1);
form2.Dispose();

GetPicture代码:

public void GetPicture(string FileName)
{
pictureBox1.Image =Image.FromFile(FileName);
this.Width = pictureBox1.Image.Width + 16;
this.Height = pictureBox1.Image.Height + 75;
}

第一次收到消息,窗口弹出,可以正常显示图片。但是后续第二次、第三次窗口弹出,显示出来的图片仍然是第一次的,但是实际上ABC.jpg这张图已经变了。研究了好久,不知道什么情况?
...全文
584 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
先把图片清空,再重新加载看看
  • 打赏
  • 举报
回复
引用 5 楼 三人二小能文武 的回复:
this.Invoke((MethodInvoker)delegate { pictureBox1.Image = Image.FromFile(FileName); }); 可以试下这个方法
半年前的问题你是怎么翻出来的?
泡泡龙 2021-02-03
  • 打赏
  • 举报
回复
另外,跨进程交互有很多方法,不要用文件传递
泡泡龙 2021-02-03
  • 打赏
  • 举报
回复
你先弹个空白图片看看效果。我怀疑你读取文件的时候,那个文件还没有变呢
  • 打赏
  • 举报
回复
this.Invoke((MethodInvoker)delegate { pictureBox1.Image = Image.FromFile(FileName); }); 可以试下这个方法
Dr立 2019-05-23
  • 打赏
  • 举报
回复

pictureBox1.ImageLocation = FileName ;
  • 打赏
  • 举报
回复

..=new Bitmap(Image.FromFile(file.FileName));
Dreamia 2019-05-23
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
pictureBox1.Refresh()看看

不行,奇怪。
stherix 2019-05-23
  • 打赏
  • 举报
回复
pictureBox1.Refresh()看看

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧