2017-11-25 24 views
1

上提升事件當我的筆記本電腦的電池電量達到80%時,我希望我的程序顯示一個簡單的對話框。我使用SystemInformation.PowerStatus.BatteryLifePercent 達到相同目的,並使用計時器事件來監視充電或放電時的電池百分比變化,並使用上述方法檢查電池達到80%充電。以下是代碼。無法在SystemInformation.PowerStatus.BatteryLifePercent =某個數字

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Timer1.Enabled = True 
    TimerChargeMonitor.Interval = 100 
    TimerChargeMonitor.Enabled = True 
End Sub 

Private Sub TimerChargeMonitor_Tick(sender As Object, e As EventArgs) Handles TimerChargeMonitor.Tick 
    If SystemInformation.PowerStatus.BatteryLifePercent = 0.8 Then 
     NotifBox.Show() 
     TimerChargeMonitor.Enabled = False 
    End If 
End Sub 

問題是它不起作用。當電池百分比達到80%或任何其他數字時,對話框表格不顯示。

回答

0

您的代碼需要進行一些調整:
SystemInformation.PowerStatus.BatteryLifePercent返回一個。
最好用>=進行測試,因爲它的值可能與您在此期待的值略有不同。

然後,您必須在顯示消息框之前停止計時器(如果這是NotifBox.Show())。
所以,你的代碼是:

If SystemInformation.PowerStatus.BatteryLifePercent >= 0.8 Then 
    TimerChargeMonitor.Enabled = False 
    TimerChargeMonitor.Stop() 
    NotifBox.Show() 
End If 


作爲一個說明,刻度間隔的方式似乎太低了這種應用。
也許將它設置爲TimerChargeMonitor.Interval = 5000
(我不知道其他計時器是什麼,這裏)。

+0

感謝它幫助。但是有一個問題,爲這個應用程序保持定時器間隔低(100ms)是什麼錯誤。你建議將它設置爲5000 – Somanna

+0

@Somanna因爲你有理由吃掉處理器。每10秒檢查一次電池充電狀態,您沒有任何好處。 – Jimi