C# 4.0 只显示一次消息框

C# 4.0 只显示一次消息框,c#-4.0,batterylevel,C# 4.0,Batterylevel,当达到充电水平时,我使用以下代码显示一个消息框 private void timer1_Tick(object sender, EventArgs e) { battery = Convert.ToInt32(power.BatteryLifePercent * 100); while (battery == 100) { MessageBox.Show("charging full disconnect the

当达到充电水平时,我使用以下代码显示一个消息框

private void timer1_Tick(object sender, EventArgs e)
    {
        battery = Convert.ToInt32(power.BatteryLifePercent * 100);

        while (battery == 100)
        {
            MessageBox.Show("charging full disconnect the charger");
        }
    }
此代码正在运行。但它不止一次显示messagebox。 我只想展示一次


谢谢

没有更多信息,很难确定实际问题。但是,通过使用变量跟踪是否已显示消息,您可能可以快速解决此问题

PowerStatus power = SystemInformation.PowerStatus;

int battery = 0;
bool battery_message_shown = false;

if( battery == 100 && battery_message_shown == false )
{
  battery_message_shown = true;
  MessageBox.Show("charging full");
}

尽管在理想情况下,除非是时候显示消息,否则不会调用此代码。不过,我需要看大图才能弄清楚这一点。

与while循环相关的条件永远不会以编码的方式达到。这就是为什么循环体将不断被执行的原因

您需要嵌入更改或刷新条件的代码。但是,如果您这样做,该程序将占用大量资源,因为电池充电过程通常非常耗时。然后,您需要做的可能是在一段时间内执行thread.sleep,或者最好使用计时器

此代码示例正在执行类似的操作,在您的案例中可能值得一看:
.

从何处调用代码以使其多次运行?您显示的代码不会导致重复。显示调用此代码的内容每隔1秒使用计时器调用一次我收到此错误事件“System.Windows.Forms.Form.Showed”只能出现在+=或-=显示的左侧必须在其他位置使用,我的错误,更新答案以使用电池\u显示的消息\u