From 78994d1c8243018f6e37717e3ea0a0297d491bd8 Mon Sep 17 00:00:00 2001 From: xcd <834800634@qq.com> Date: 星期五, 10 七月 2020 13:10:24 +0800 Subject: [PATCH] 标签显示和列表联动修改 --- src/Bro.M071.Process/UI/M071_MainForm.cs | 118 ++++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 93 insertions(+), 25 deletions(-) diff --git a/src/Bro.M071.Process/UI/M071_MainForm.cs b/src/Bro.M071.Process/UI/M071_MainForm.cs index 63f429e..7f507bc 100644 --- a/src/Bro.M071.Process/UI/M071_MainForm.cs +++ b/src/Bro.M071.Process/UI/M071_MainForm.cs @@ -1,4 +1,5 @@ -锘縰sing Bro.Common.Helper; +锘縰sing Bro.Common.Base; +using Bro.Common.Helper; using Bro.UI.Model.Winform; using System; using System.Collections.Generic; @@ -31,6 +32,15 @@ plImage.Controls.Add(cvImage); tscEditLocation.Visible = tsmiShowEditor.Checked = false; + + this.Load += async (s, e) => + { + await Task.Delay(300); + + cvImage.SetScreenSize(); + cvImage.OnElementChangedHandle -= CvImage_OnElementChangedHandle; + cvImage.OnElementChangedHandle += CvImage_OnElementChangedHandle; + }; } public override void OnProcessUpdated() @@ -43,33 +53,37 @@ if (string.IsNullOrWhiteSpace(Config.BackgroundImagePath)) return; - try + this.Invoke(new Action(() => { - Bitmap image = (Bitmap)Image.FromFile(Config.BackgroundImagePath); - cvImage.LoadImage(image); - } - catch (Exception ex) - { - LogAsync(new LogMsg(DateTime.Now, "杞藉叆鑳屾櫙鍥惧紓甯�", ex.Message)); - return; - } - - cvImage.Elements.Clear(); - lvMeasures.Items.Clear(); - Config.MeasurementUnitCollection.ForEach(u => - { - if (!u.IsEnabled) + try + { + Bitmap image = (Bitmap)Image.FromFile(Config.BackgroundImagePath); + cvImage.LoadImage(image); + cvImage.SetScreenSize(); + } + catch (Exception ex) + { + LogAsync(new LogMsg(DateTime.Now, "杞藉叆鑳屾櫙鍥惧紓甯�", ex.Message)); return; + } - var ele = new KeyIndicator(u.Id, u.DisplayLocation); - cvImage.Elements.Add(ele); + cvImage.Elements.Clear(); + lvMeasures.Items.Clear(); + txtBarcode.ReadOnly = Config.IsBarcodeManulInputBlocked; - ListViewItem item = new ListViewItem(u.GetDisplayText()); - item.Tag = u.Id; - lvMeasures.Items.Add(item); - }); + Config.MeasurementUnitCollection.ForEach(u => + { + if (!u.IsEnabled) + return; - txtBarcode.ReadOnly = Config.IsBarcodeManulInputBlocked; + var ele = new KeyIndicator(u.Id, u.DisplayLocation); + cvImage.Elements.Add(ele); + + ListViewItem item = new ListViewItem(u.GetDisplayText()); + item.Tag = u.Id; + lvMeasures.Items.Add(item); + }); + })); Process_M071.OnClearBarcode -= M071_MainForm_OnClearBarcode; Process_M071.OnClearBarcode += M071_MainForm_OnClearBarcode; @@ -107,10 +121,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; @@ -149,6 +198,20 @@ MessageBox.Show("鏍囩淇敼瀹屾垚"); } + + private void lvMeasures_DoubleClick(object sender, EventArgs e) + { + 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(); + } + } #endregion #region 涓婃柟鐘舵�佸尯 @@ -167,6 +230,11 @@ { txtBarcode.Text = _barcode; _barcode = ""; + } + + if (e.KeyValue == 27) + { + cvImage.Elements.ToList().ForEach(ele => ele.State = ElementState.Normal); } } @@ -307,12 +375,12 @@ } else if (btnStartMeasure.Text == "缁х画娴嬮噺") { - Process_M071.ResumeJob(null, null, null); + Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 0 } }, null, null); btnStartMeasure.Text = "鏆傚仠娴嬮噺"; } else { - Process_M071.PauseJob(null, null, null); + Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 1 } }, null, null); btnStartMeasure.Text = "缁х画娴嬮噺"; } -- Gitblit v1.8.0