using System; using System.Windows.Forms; namespace YiDa_WinForm { public partial class ScrapUploadForm : Form { // 对外暴露的选择结果 public bool IsScrapUploadSelected { get; private set; } public bool IsScrapTimedAlarmSelected { get; private set; } public int ScrapTimedInterval { get; private set; } // 新增:保存用户上次的勾选状态(用于持久化) private bool _lastScrapUploadSelected; private bool _lastScrapTimedAlarmSelected; // 无参构造函数(保留,避免报错) public ScrapUploadForm() { InitializeComponent(); // 默认初始化(首次打开的默认状态) _lastScrapUploadSelected = true; _lastScrapTimedAlarmSelected = true; ScrapTimedInterval = 120; InitFormControl(); } // 新增:带完整参数的构造函数(接收主窗体传递的「上次勾选状态+间隔值」) public ScrapUploadForm(bool lastUploadSelected, bool lastTimedAlarmSelected, int lastInterval) { InitializeComponent(); // 保存上次状态 _lastScrapUploadSelected = lastUploadSelected; _lastScrapTimedAlarmSelected = lastTimedAlarmSelected; ScrapTimedInterval = lastInterval > 0 ? lastInterval : 120; // 初始化控件状态 InitFormControl(); } // 简化:仅接收间隔值的构造函数(兼容原有调用,保持向下兼容) public ScrapUploadForm(int lastInterval) { InitializeComponent(); // 默认勾选状态(首次打开) _lastScrapUploadSelected = true; _lastScrapTimedAlarmSelected = true; ScrapTimedInterval = lastInterval > 0 ? lastInterval : 120; InitFormControl(); } /// /// 初始化控件状态(根据保存的上次状态) /// private void InitFormControl() { // 恢复上次的勾选状态(核心:持久化用户选择) checkBoxScrapUpload.Checked = _lastScrapUploadSelected; checkBoxScrapTimedAlarm.Checked = _lastScrapTimedAlarmSelected; // 初始化间隔输入框 textBoxScrapInterval.Text = ScrapTimedInterval.ToString(); // 控制输入框可用性 textBoxScrapInterval.Enabled = checkBoxScrapTimedAlarm.Checked; labelScrapInterval.Enabled = checkBoxScrapTimedAlarm.Checked; } // 确定按钮点击事件 private void buttonConfirm_Click(object sender, EventArgs e) { // 1. 获取用户本次选择(保存到对外暴露的属性) IsScrapUploadSelected = checkBoxScrapUpload.Checked; IsScrapTimedAlarmSelected = checkBoxScrapTimedAlarm.Checked; // 2. 校验时间间隔(仅当勾选报警时校验) if (IsScrapTimedAlarmSelected) { if (int.TryParse(textBoxScrapInterval.Text, out int interval) && interval > 0) { ScrapTimedInterval = interval; } else { MessageBox.Show("请输入有效的正整数时间间隔!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } // 3. 关闭弹窗(返回OK结果) DialogResult = DialogResult.OK; Close(); } // 取消按钮点击事件 private void buttonCancel_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; Close(); } // 定时报警复选框状态变更(控制输入框可用性) private void checkBoxScrapTimedAlarm_CheckedChanged(object sender, EventArgs e) { textBoxScrapInterval.Enabled = checkBoxScrapTimedAlarm.Checked; labelScrapInterval.Enabled = checkBoxScrapTimedAlarm.Checked; } // 无用事件(保留,避免设计器报错) private void label1_Click(object sender, EventArgs e) { } private void textBoxScrapInterval_TextChanged(object sender, EventArgs e) { } } }