体检系统架构
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

85 lines
2.7 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Update
{
public partial class CountdownMessageBox : Form
{
private int _countdownSeconds = 3;
private Label _lblMessage;
private Label _lblCountdown;
public CountdownMessageBox(string message, int seconds = 3)
{
_countdownSeconds = seconds;
// 窗体设置
this.Text = "提示";
this.StartPosition = FormStartPosition.CenterScreen;
this.FormBorderStyle = FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.ControlBox = false;
this.TopMost = true;
this.ShowInTaskbar = false;
// 设置窗体大小
this.Size = new Size(400, 200);
// 创建消息标签 - 关键设置
_lblMessage = new Label();
_lblMessage.Text = message; // 先设置文本
_lblMessage.Font = new Font("Microsoft YaHei", 10);
_lblMessage.TextAlign = ContentAlignment.MiddleCenter;
_lblMessage.AutoSize = false; // 设置为false
_lblMessage.Size = new Size(360, 120); // 明确设置大小
_lblMessage.Location = new Point(20, 20);
// 创建倒计时标签
_lblCountdown = new Label();
_lblCountdown.Text = $"({_countdownSeconds}秒后自动关闭)";
_lblCountdown.Font = new Font("Microsoft YaHei", 9);
_lblCountdown.ForeColor = Color.Blue;
_lblCountdown.TextAlign = ContentAlignment.MiddleCenter;
_lblCountdown.AutoSize = false;
_lblCountdown.Size = new Size(360, 25);
_lblCountdown.Location = new Point(20, 150);
// 添加控件
this.Controls.Add(_lblMessage);
this.Controls.Add(_lblCountdown);
// 初始化计时器
System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer
{
Interval = 1000
};
timer.Tick += (s, e) =>
{
_countdownSeconds--;
_lblCountdown.Text = $"({_countdownSeconds}秒后自动关闭)";
if (_countdownSeconds <= 0)
{
timer.Stop();
this.Close();
}
};
this.Shown += (s, e) => timer.Start();
// 确保控件可见
_lblMessage.Visible = true;
_lblCountdown.Visible = true;
// 强制刷新显示
this.Refresh();
}
}
}