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