using Bro.UI.Model.Winform; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace Bro.M071.Process.UI { [MenuNode("M071_ShortcutFrm", "快捷操作", 2, "M071Node", true)] public partial class M071_ShortcutFrm : MenuFrmBase { public M071_ShortcutFrm() { InitializeComponent(); this.Load += (s, e) => { loadHandle.Set(); }; } ManualResetEventSlim loadHandle = new ManualResetEventSlim(false); M071Config Config => Process?.IConfig as M071Config; M071Process Process_M071 => Process as M071Process; protected override bool IsLogin { get => base.IsLogin; set { base.IsLogin = value; Task.Run(() => { if (loadHandle.Wait(1000)) { this.Invoke(new Action(() => { chkEnableMESUpload.Enabled = chkBlockSafetyBeam.Enabled = chkBlockSaftyDoor.Enabled = IsLogin; })); } }); } } public override void OnProcessUpdated() { base.OnProcessUpdated(); //Task.Run(() => //{ // if (loadHandle.Wait(1000)) // { // this.Invoke(new Action(() => // { // chkBlockBeep.Checked = Config.IsBeepBlocked; // chkBlockSafetyBeam.Checked = Config.IsSafetyBeamBlocked; // chkBlockSaftyDoor.Checked = Config.IsSafetyDoorBlocked; // chkManualInputForbidden.Checked = Config.IsBarcodeManualInputBlocked; // chkEnableMESUpload.Checked = Config.IsEnableMESUpload; // })); // } //}); this.Invoke(new Action(() => { chkBlockBeep.Checked = Config.IsBeepBlocked; chkBlockSafetyBeam.Checked = Config.IsSafetyBeamBlocked; chkBlockSaftyDoor.Checked = Config.IsSafetyDoorBlocked; chkManualInputForbidden.Checked = Config.IsBarcodeManualInputBlocked; chkEnableMESUpload.Checked = Config.IsEnableMESUpload; })); Config.PropertyChanged -= Config_PropertyChanged; Config.PropertyChanged += Config_PropertyChanged; } private async void Config_PropertyChanged(object sender, PropertyChangedEventArgs e) { chkBlockBeep.Checked = Config.IsBeepBlocked; chkBlockSafetyBeam.Checked = Config.IsSafetyBeamBlocked; chkBlockSaftyDoor.Checked = Config.IsSafetyDoorBlocked; chkManualInputForbidden.Checked = Config.IsBarcodeManualInputBlocked; chkEnableMESUpload.Checked = Config.IsEnableMESUpload; await Task.Delay(100); } private void chkBlockSaftyDoor_CheckedChanged(object sender, EventArgs e) { Config.IsSafetyDoorBlocked = chkBlockSaftyDoor.Checked; } private void chkBlockSafetyBeam_CheckedChanged(object sender, EventArgs e) { Config.IsSafetyBeamBlocked = chkBlockSafetyBeam.Checked; } private void chkBlockBeep_CheckedChanged(object sender, EventArgs e) { Config.IsBeepBlocked = chkBlockBeep.Checked; } private void chkManualInputForbidden_CheckedChanged(object sender, EventArgs e) { Config.IsBarcodeManualInputBlocked = chkManualInputForbidden.Checked; } bool isLightOn = false; private void btnLightSwitch_Click(object sender, EventArgs e) { isLightOn = !isLightOn; Process_M071.SwitchLight(isLightOn); } private void chkEnableMESUpload_CheckedChanged(object sender, EventArgs e) { Config.IsEnableMESUpload = chkEnableMESUpload.Checked; } } }