【发布时间】:2012-06-16 10:02:49
【问题描述】:
我有一个有两种状态的按钮;正常和处于警报状态。正常情况下,按钮如下所示:
在警报状态下,以 gif 格式在红色和橙色之间闪烁,如下所示:
下面是一些决定按钮状态的sn-ps:
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;
}
我在 sn-ps 中将图像设置为 null 的原因是因为我认为它可能将图像堆叠在一起,但这似乎并没有解决它。
我遇到的问题是,经过一段时间轮询设备以检查按钮的状态......按钮会随机变化,看起来像这样:
我有点不知道为什么会这样,在它变成按钮状态之前的时间似乎有所不同:奇怪。有人知道为什么会这样吗?
【问题讨论】:
-
这里是
System.Windows.Forms.Button还是System.Windows.Controls.Button? -
它们是 System.Windows.Forms.Button 按钮。
-
“厄运的大红色 x”表示您的控件在尝试绘制时遇到了异常。您是在使用按钮进行任何自定义绘画还是只是切换图像/背景色?您是否看到任何异常抛出?
-
它在 try catch 语句中,但没有抛出任何异常。我只是在 .gif 图像和背景色之间切换。
标签: c# .net winforms image controls