| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Drawing;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using Infragistics.Win.UltraWinEditors;
- namespace CarLocalMeter
- {
- public partial class ucWeightT : UserControl
- {
- public ucWeightT()
- {
- InitializeComponent();
- }
- #region 线程中赋值的控件需使用委托
- private delegate void UpdateUIEventHander(object sender, UpdateUIArgs args); //自定义事件用来从线程中更新控件的值
- public class UpdateUIArgs : EventArgs
- {
- public string textValue { get; private set; }
- public UpdateUIArgs(string textValue)
- {
- this.textValue = textValue;
- }
- }
- private void UpdateUI_Method(object sender, UpdateUIArgs args)
- {
- if(sender is UltraTextEditor)
- {
- if (args.textValue == "" || args.textValue == null)
- {
- ((UltraTextEditor)sender).Text = "0";
- }
- else
- {
- ((UltraTextEditor)sender).Text = args.textValue;
- }
- }
- else if (sender is Button)
- {
- if (args.textValue == "red")
- {
- ((Button)sender).BackColor = Color.Red;
- ((Button)sender).ForeColor = Color.White;
- }
- else if (args.textValue == "green")
- {
- ((Button)sender).BackColor = Color.White;
- ((Button)sender).ForeColor = Color.Black;
- }
- else
- {
- ((Label)sender).Text = args.textValue;
- }
- }
- else if (sender is PictureBox)
- {
- if (args.textValue == "red")
- {
- ((PictureBox)sender).Load(AppConfigCache.path + "\\image\\icon\\red.gif");
- }
- else
- {
- ((PictureBox)sender).Load(AppConfigCache.path + "\\image\\icon\\green.gif");
- }
- }
- }
- /// <summary>
- /// 记录当前的颜色,在线程中窑调用下面的setControl方法前
- /// 可先判断当前的颜色与显示颜色是否一致
- /// 若一致则可不调用setControl,不一致再调用
- /// </summary>
- public bool isGreenWgt = true;
- public bool isGrennExceed = true;
- /// <summary>
- /// 重量稳定
- /// </summary>
- /// <param name="bGreen"></param>
- public void setStable(bool bGreen)
- {
- if (!CacleCls.isLock)
- {
- if (picStable.IsHandleCreated)
- {
- isGreenWgt = bGreen;
- string sValue = isGreenWgt ? "green" : "red";
- picStable.Invoke(new UpdateUIEventHander(UpdateUI_Method), picStable, new UpdateUIArgs(sValue));
- btnStable.Invoke(new UpdateUIEventHander(UpdateUI_Method), btnStable, new UpdateUIArgs(sValue));
- }
- }
- }
- /// <summary>
- /// 超量程
- /// </summary>
- /// <param name="bGreen">true为绿色,false红色警告</param>
- public void setExceed(bool bGreen)
- {
- if (!CacleCls.isLock)
- {
- if (picExceed.IsHandleCreated)
- {
- isGrennExceed = bGreen;
- string sValue = isGrennExceed ? "green" : "red";
- picExceed.Invoke(new UpdateUIEventHander(UpdateUI_Method), picExceed, new UpdateUIArgs(sValue));
- btnExceedRange.Invoke(new UpdateUIEventHander(UpdateUI_Method), btnExceedRange, new UpdateUIArgs(sValue));
- }
- }
- }
- /// <summary>
- /// 实时写入重量
- /// PbCache.isLockWgt 重量未锁定则可写入,否则调用了也不会写入
- /// </summary>
- /// <param name="db">重量信息</param>
- public void setWgt(double db)
- {
- if (!CacleCls.isLock)
- {
- if (txtWeight.IsHandleCreated)
- {
- txtWeight.Invoke(new UpdateUIEventHander(UpdateUI_Method), txtWeight, new UpdateUIArgs(db.ToString("0.00") + ""));
- }
- }
- }
- #endregion
- }
- }
|