0

我有一个有两种状态的按钮;正常和处于警报状态。正常情况下,按钮如下所示:

按键状态:正常

在警报状态下,以 gif 格式在红色和橙色之间闪烁,如下所示:

按键状态:报警中 按键状态:报警中

下面是一些决定按钮状态的片段:

if (blah blah == true)
{
  ((Button)mainUI.Controls["btn" + device.deviceButtonNumber]).Image = null;
  //MessageBox.Show("Button " + device.deviceButtonNumber.ToString() + "is now flashing");
  ((Button)mainUI.Controls["btn" + device.deviceButtonNumber]).Image = Properties.Resources.red_orange;
}
else
{
  //MessageBox.Show("Button " + device.deviceButtonNumber.ToString() + "is now green");
  ((Button)mainUI.Controls["btn" + device.deviceButtonNumber]).Image = null;
  ((Button)mainUI.Controls["btn" + device.deviceButtonNumber]).BackColor = Color.Green;
}

在片段中我将图像设置为空的原因是因为我认为它可能将图像堆叠在一起,但这似乎并没有解决它。

我遇到的问题是,经过一段时间轮询设备以检查按钮的状态......按钮将随机变化,如下所示:

奇怪的状态

我有点不知道为什么会发生这种情况,在它变成按钮状态之前的时间似乎有所不同:奇怪。有人知道为什么会这样吗?

4

1 回答 1

2

红十字表示在绘制按钮时出现错误,红十字图像是按钮的默认错误图像。我认为您的嵌入资源有问题检查资源中是否存在所有图像,如果然后您可能没有创建图像对象。

尝试使用

((Button)mainUI.Controls["btn" + device.deviceButtonNumber]).Image = new Image(Properties.Resources.red_orange);

从资源中的图像创建一个对象。也尝试使用不在资源中的图像,即:外部

于 2012-06-13T13:34:16.997 回答