From cdf12e1954c78e187b142c7d7a460ec7387067f7 Mon Sep 17 00:00:00 2001 From: xcd <834800634@qq.com> Date: 星期五, 10 七月 2020 15:17:57 +0800 Subject: [PATCH] 配置变动和界面显示联动 --- src/Bro.M071.Process/UI/M071_MainForm.cs | 51 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 49 insertions(+), 2 deletions(-) diff --git a/src/Bro.M071.Process/UI/M071_MainForm.cs b/src/Bro.M071.Process/UI/M071_MainForm.cs index 938e116..17b79c9 100644 --- a/src/Bro.M071.Process/UI/M071_MainForm.cs +++ b/src/Bro.M071.Process/UI/M071_MainForm.cs @@ -38,6 +38,8 @@ await Task.Delay(300); cvImage.SetScreenSize(); + cvImage.OnElementChangedHandle -= CvImage_OnElementChangedHandle; + cvImage.OnElementChangedHandle += CvImage_OnElementChangedHandle; }; } @@ -67,7 +69,8 @@ cvImage.Elements.Clear(); lvMeasures.Items.Clear(); - txtBarcode.ReadOnly = Config.IsBarcodeManulInputBlocked; + + txtBarcode.Enabled = !Config.IsBarcodeManualInputBlocked; Config.MeasurementUnitCollection.ForEach(u => { @@ -98,6 +101,14 @@ Process_M071.OnFullResetDone -= Process_M071_FullResetDone; Process_M071.OnFullResetDone += Process_M071_FullResetDone; + + Config.PropertyChanged -= Config_PropertyChanged; + Config.PropertyChanged += Config_PropertyChanged; + } + + private void Config_PropertyChanged(object sender, PropertyChangedEventArgs e) + { + txtBarcode.Enabled = !Config.IsBarcodeManualInputBlocked; } #region 鍥剧墖鍖哄彸閿彍鍗� @@ -119,10 +130,45 @@ #endregion #region 鏍囩缂栬緫鍖� + private async void CvImage_OnElementChangedHandle(Common.Interface.IShapeElement ele) + { + this.Invoke(new Action(() => + { + if (ele is KeyIndicator indicator) + { + if (indicator.State == ElementState.Selected) + { + foreach (ListViewItem item in lvMeasures.Items) + { + if (item.Tag.ToString() == indicator.ID) + { + item.Selected = true; + + lvMeasures.EnsureVisible(item.Index); + break; + } + } + } + } + })); + + await Task.Delay(100); + } + private void lvMeasures_SelectedIndexChanged(object sender, EventArgs e) { if (lvMeasures.SelectedItems.Count <= 0) return; + + foreach (ListViewItem item in lvMeasures.Items) + { + item.BackColor = SystemColors.Control; + } + + foreach (ListViewItem item in lvMeasures.SelectedItems) + { + item.BackColor = Color.Orange; + } var ele = cvImage.Elements.FirstOrDefault(u => u.ID == lvMeasures.SelectedItems[0].Tag.ToString()); propGridKeyIndicator.SelectedObject = ele; @@ -167,11 +213,12 @@ if (lvMeasures.SelectedItems.Count <= 0) return; + cvImage.Elements.ToList().ForEach(u => u.State = ElementState.Normal); var ele = cvImage.Elements.FirstOrDefault(u => u.ID == lvMeasures.SelectedItems[0].Tag.ToString()); if (ele != null) { ele.State = ElementState.Selected; - cvImage.Invalidate(); + //cvImage.Invalidate(); } } #endregion -- Gitblit v1.8.0