form1.cs

来自「清华大学出版社出版的 移动应用开发宝典 张大威(2008)的附书源代码」· CS 代码 · 共 98 行

CS
98
字号
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

using Microsoft.WindowsMobile.Status;

namespace Status
{
    public partial class Form1 : Form
    {
        private SystemState cradleState;

        private SystemState powerState;
        private SystemState batteryState;

        public Form1()
        {
            InitializeComponent();
            
            if(SystemState.IsApplicationLauncherEnabled("Chapter17.Cradle"))
            {
                cradleState = new SystemState("Chapter17.Cradle");
            }
            else
            {
                cradleState = new SystemState(SystemProperty.CradlePresent);
                cradleState.EnableApplicationLauncher("Chapter17.Cradle");
            }

            cradleState.Changed+=new ChangeEventHandler(cradleState_Changed);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            

            powerState = new SystemState(SystemProperty.PowerBatteryState);
            batteryState = new SystemState(SystemProperty.PowerBatteryStrength);
            powerState.Changed += new ChangeEventHandler(powerState_Changed);
            batteryState.Changed += new ChangeEventHandler(batteryState_Changed);

            //set initial states
            ckCharging.Checked = (SystemState.PowerBatteryState == BatteryState.Charging);
            UpdateBatteryStrength(SystemState.PowerBatteryStrength);

        }

        void cradleState_Changed(object sender, ChangeEventArgs args)
        {
            if (!Convert.ToBoolean(args.NewValue))
            {
                //close app when undocked
                this.Close();
            }
        }

        void batteryState_Changed(object sender, ChangeEventArgs args)
        {
            UpdateBatteryStrength((BatteryLevel)args.NewValue);
        }

        void powerState_Changed(object sender, ChangeEventArgs args)
        {
            ckCharging.Checked = ((BatteryState)args.NewValue == BatteryState.Charging);
        }

        void UpdateBatteryStrength(BatteryLevel newLevel)
        {
            switch (newLevel)
            {
                case BatteryLevel.VeryHigh:
                    pnlPower.BackColor = Color.Green;
                    pbBattery.Value = 100;
                    break;
                case BatteryLevel.High:
                    pnlPower.BackColor = Color.LimeGreen;
                    pbBattery.Value = 75;
                    break;
                case BatteryLevel.Medium:
                    pnlPower.BackColor = Color.Yellow;
                    pbBattery.Value = 50;
                    break;
                case BatteryLevel.Low:
                    pnlPower.BackColor = Color.Orange;
                    pbBattery.Value = 25;
                    break;
                case BatteryLevel.VeryLow:
                    pnlPower.BackColor = Color.Red;
                    pbBattery.Value = 0;
                    break;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?