using System; using System.Windows.Forms; namespace CK.SCP.GrupUniApi { public partial class CktUniApiButton : UserControl { public string Title { get{return groupPanel.Text;} set{groupPanel.Text = value;} } public bool SwitchEnabled { get { return Switch.Value; } set { Switch.Value = value; } } public int InitCount { get; set; } public int Count { get { return IntCounter.Value; } set { IntCounter.Value = value; } } public bool EnableManual { get { return ButtonManual.Enabled; } set { ButtonManual.Enabled = value; } } public CktUniApiButton() { InitializeComponent(); } public delegate void ButtonClickHandler(object sender, EventArgs e); public event ButtonClickHandler ButtonClick; private void ButtonManual_Click(object sender, EventArgs e) { try { Console.WriteLine($@"手动执行:{Title}。"); RunOnceExecuted(); ButtonClick?.Invoke(sender, e); } catch { // ignored } } public delegate void SwitchValueChangedHandler(object sender, EventArgs e); public event SwitchValueChangedHandler SwitchValueChanged; private void Switch_ValueChanged(object sender, EventArgs e) { try { SwitchValueChanged?.Invoke(sender, e); } catch { // ignored } } public delegate void RunOnceHandler(); public event RunOnceHandler RunOnceExecute; private void RunOnceExecuted() { try { RunOnceExecute?.Invoke(); } catch { // ignored } } public void Start() { if (!SwitchEnabled) return; Console.WriteLine($@"启动:{Title},执行周期:{Count}秒。"); RunOnceExecuted(); Count = InitCount; } public void Stop() { if (!SwitchEnabled) return; Console.WriteLine($@"停止:{Title}。"); } public void RunOnce() { if (!SwitchEnabled) return; if (Count == 0) { RunOnceExecuted(); Count = InitCount; } else { Count--; } } } }