在C#WinForms中,我正在编写一个从串口读取值的程序,根据接收到的值显示图片框中的图像:如果值为X,则显示image1,如果值为Y,则显示显示图像2 ......等等。
当我收到第一个值时,程序显示第一个图像v;好,但是当收到第二个值时,不会显示任何新图像:即使值已更改,也只显示相同的图像..图片框不会更改图像。
我尝试picturebox.Refresh()
和picturebox.Invalidate()
,但这不起作用。
谢谢
这是一些设置图像的代码:
if (value == "X")
{
path = "c:\\c#\\image1.png";
pictureBox1.Invoke(new OutputUpdateDelegate (OutputUpdateCallback1),path);
}
if (value == "Y")
{
path = "c:\\c#\\image2.png";
pictureBox1.Invoke(new OutputUpdateDelegate(OutputUpdateCallback1), path);
}
delegate void OutputUpdateDelegate(string data);
private void OutputUpdateCallback1(string data)
{
pictureBox1.Image = Image.FromFile(data);
}
答案 0 :(得分:0)
试试这个
if (value == "X")
{
path = "c:\\c#\\image1.png";
pictureBox1.Invoke(new OutputUpdateDelegate (OutputUpdateCallback1),path);
}
if (value == "Y")
{
path = "c:\\c#\\image2.png";
pictureBox1.Invoke(new OutputUpdateDelegate(OutputUpdateCallback1), path);
}
delegate void OutputUpdateDelegate(string data);
private void OutputUpdateCallback1(string data)
{
pictureBox1.Image = Image.FromFile(data);
}
我删除了一些看似错误的括号“}” - 虽然不确定,因为没有足够的来源可以确定......
编辑:
进一步对角线在pictureBox1.Image = Image.FromFile(data);
上设置一个断点,看看数据的价值是什么......