C#串口图片框问题

时间:2011-07-25 06:35:10

标签: c# winforms

在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);
}

1 个答案:

答案 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);上设置一个断点,看看数据的价值是什么......