feat: 添加暂停和恢复功能以优化工作计时管理
This commit is contained in:
32
MainForm.cs
32
MainForm.cs
@@ -61,6 +61,7 @@ namespace TimerApp
|
||||
btnRestPlus.BackColor = panelColor;
|
||||
btnStartStop.BackColor = dark ? Color.FromArgb(63, 63, 70) : Color.White;
|
||||
btnReset.BackColor = dark ? Color.FromArgb(63, 63, 70) : Color.White;
|
||||
btnPause.BackColor = dark ? Color.FromArgb(63, 63, 70) : Color.White;
|
||||
|
||||
// 优化绘制,减少闪烁
|
||||
this.SetStyle(ControlStyles.AllPaintingInWmPaint |
|
||||
@@ -256,6 +257,7 @@ namespace TimerApp
|
||||
// Update buttons
|
||||
UpdateButtonStyle(btnStartStop, dark);
|
||||
UpdateButtonStyle(btnReset, dark);
|
||||
UpdateButtonStyle(btnPause, dark);
|
||||
UpdateButtonStyle(btnHide, dark);
|
||||
|
||||
// Numeric buttons and text
|
||||
@@ -372,6 +374,20 @@ namespace TimerApp
|
||||
_monitor.Restart();
|
||||
}
|
||||
|
||||
private void btnPause_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (_monitor.IsPaused)
|
||||
{
|
||||
_monitor.Resume();
|
||||
btnPause.Text = "暂停";
|
||||
}
|
||||
else
|
||||
{
|
||||
_monitor.Pause();
|
||||
btnPause.Text = "恢复";
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplySettings()
|
||||
{
|
||||
int workMin = 20;
|
||||
@@ -400,6 +416,18 @@ namespace TimerApp
|
||||
|
||||
bool dark = _settings.IsDarkMode;
|
||||
|
||||
// 更新暂停按钮状态
|
||||
if (_monitor.CurrentState == MonitorState.Idle)
|
||||
{
|
||||
btnPause.Enabled = false;
|
||||
btnPause.Text = "暂停";
|
||||
}
|
||||
else
|
||||
{
|
||||
btnPause.Enabled = true;
|
||||
btnPause.Text = _monitor.IsPaused ? "恢复" : "暂停";
|
||||
}
|
||||
|
||||
switch (_monitor.CurrentState)
|
||||
{
|
||||
case MonitorState.Idle:
|
||||
@@ -409,12 +437,12 @@ namespace TimerApp
|
||||
lblTimeLeft.ForeColor = Color.Gray;
|
||||
break;
|
||||
case MonitorState.Working:
|
||||
lblStatus.Text = "状态: 工作中";
|
||||
lblStatus.Text = _monitor.IsPaused ? "状态: 工作中 (已暂停)" : "状态: 工作中";
|
||||
lblStatus.ForeColor = dark ? Color.LightGreen : Color.Green;
|
||||
lblTimeLeft.ForeColor = dark ? Color.White : Color.Black;
|
||||
break;
|
||||
case MonitorState.Resting:
|
||||
lblStatus.Text = "状态: 休息中";
|
||||
lblStatus.Text = _monitor.IsPaused ? "状态: 休息中 (已暂停)" : "状态: 休息中";
|
||||
lblStatus.ForeColor = dark ? Color.LightSkyBlue : Color.Blue;
|
||||
lblTimeLeft.ForeColor = dark ? Color.LightSkyBlue : Color.Blue;
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user