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);
}
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的值是什么…