0

2 つの状態を持つボタンがあります。通常およびアラーム中。通常、ボタンは次のように表示されます。

ボタンの状態: 通常

警報状態では、次のように 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;
}

スニペットで画像をnullに設定した理由は、画像を積み重ねているのではないかと思ったからですが、これは修正されていないようです。

私が抱えている問題は、しばらくデバイスをポーリングしてボタンの状態を確認した後です....ボタンはランダムに変化し、次のようになります。

奇妙な状態

なぜこれが起こっているのか、私は少し行き詰まっています.buttonstate:weirdに変わるまでの時間はさまざまです。なぜこれが起こっているのか誰にも分かりますか?

4

1 に答える 1

2

赤十字は、ボタンの描画にエラーがあり、赤い十字の画像がボタンのデフォルトのエラー画像であることを示しています。埋め込みリソースに問題があると思います。すべての画像がリソースに存在するかどうかを確認し、画像オブジェクトを作成していない可能性があります。

使ってみて

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

リソース内の画像からオブジェクトを作成します。また、リソース内にない画像を使用してみてください ie:external

于 2012-06-13T13:34:16.997 に答える