728x90
728x170
▶ MainForm.cs
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace TestProject
{
/// <summary>
/// 메인 폼
/// </summary>
public partial class MainForm : Form
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Field
////////////////////////////////////////////////////////////////////////////////////////// Private
#region Field
/// <summary>
/// 타이머
/// </summary>
private Timer timer = new Timer();
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainForm()
/// <summary>
/// 생성자
/// </summary>
public MainForm()
{
InitializeComponent();
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Protected
#region 로드시 처리하기 - OnLoad(e)
/// <summary>
/// 로드시 처리하기
/// </summary>
/// <param name="e">이벤트 인자</param>
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.timer.Interval = 5000;
this.timer.Tick += timer_Tick;
this.timer.Start();
UpdateInformation();
}
#endregion
#region 종료시 처리하기 - OnClosing(e)
/// <summary>
/// 종료시 처리하기
/// </summary>
/// <param name="e">이벤트 인자</param>
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
this.timer.Stop();
}
#endregion
////////////////////////////////////////////////////////////////////////////////////////// Private
//////////////////////////////////////////////////////////////////////////////// Event
#region 타이머 틱 처리하기 - timer_Tick(sender, e)
/// <summary>
/// 타이머 틱 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void timer_Tick(object sender, EventArgs e)
{
UpdateInformation();
}
#endregion
//////////////////////////////////////////////////////////////////////////////// Function
#region 정보 업데이트하기 - UpdateInformation()
/// <summary>
/// 정보 업데이트하기
/// </summary>
private void UpdateInformation()
{
PowerStatus status = SystemInformation.PowerStatus;
// 충전 상태
this.chargeStatusTextBox.Text = status.BatteryChargeStatus.ToString();
// 완충시 사용 시간
if(status.BatteryFullLifetime != -1)
{
this.fullLifetimeTextBox.Text = status.BatteryFullLifetime.ToString();
}
else
{
this.fullLifetimeTextBox.Text = "-";
}
// 전원 상태
this.powerLineStatusTextBox.Text = status.PowerLineStatus.ToString();
// 잔여 사용 시간
if(status.BatteryLifeRemaining != -1)
{
this.lifeRemainingTextBox.Text = TimeSpan.FromSeconds(status.BatteryLifeRemaining).ToString();
}
else
{
this.lifeRemainingTextBox.Text = "-";
}
// 충전 비율
if(status.BatteryLifePercent != 255)
{
this.lifePercentProgressBar.Value = (int)(status.BatteryLifePercent * 100);
}
else
{
this.lifePercentProgressBar.Value = 0;
}
}
#endregion
}
}
728x90
그리드형(광고전용)
'C# > WinForm' 카테고리의 다른 글
[C#/WINFORM] SendKeys 클래스 : Send 정적 메소드를 사용해 이동 키 누르기 (0) | 2020.11.12 |
---|---|
[C#/WINFORM] 비트맵 이진화 적용하기 (0) | 2020.10.31 |
[C#/WINFORM] Graphics 클래스 : CopyFromScreen 메소드를 사용해 RichTextBox 이미지 캡처하기 (0) | 2020.10.28 |
[C#/WINFORM] ComboBox 클래스 : KeyPress/DropDownClosed 이벤트를 사용해 콤보 박스 열기 (0) | 2020.10.28 |
[C#/WINFORM] Graphics 클래스 : 그래픽 변환 사용하기 (0) | 2020.10.28 |
[C#/WINFORM] 마우스/키보드 후킹하기 (0) | 2020.09.23 |
[C#/WINFORM] TextBox 클래스 : KeyPress 이벤트를 사용해 숫자 입력시 자동으로 콤마 출력하기 (0) | 2020.09.18 |
[C#/WINFORM] Control 클래스 : 로딩 패널 사용하기 (0) | 2020.09.14 |
[C#/WINFORM] PrinterSettings 클래스 : InstalledPrinters 정적 속성을 사용해 설치 프린터 리스트 구하기 (0) | 2020.08.26 |
[C#/WINFORM] Form 클래스 : TopLevel 속성을 사용해 Form 객체를 컨트롤처럼 사용하기 (0) | 2020.08.26 |