c#串口图片框问题

本文关键字:问题 串口 | 更新日期: 2023-09-27 18:03:38

在c# WinForms中,我正在编写一个程序,从串行端口读取值,并根据接收到的值在图片框中显示图像:如果值为X,它将显示image1,如果值为Y,它将显示image2…等等。

当我收到第一个值时,程序显示第一个图像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);
}

c#串口图片框问题

try this

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);上设置一个断点,看看data的值是什么…