using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using Mesnac.Controls.Base; using System; using Mesnac.Controls.Default; namespace Mesnac.Controls.Compressor { [ToolboxBitmap(typeof(System.Windows.Forms.Button))] public partial class PLCButton : Button, IPurviewControl { private List _clickActionList = new List(); private List _keyDownActionList = new List(); private List _keyUpActionList = new List(); private bool _mcVisible = true; //保存可见性 private bool _mcEnabled = true; //保存可用性 private bool _isValid = true; //保存有效性 private object _mcvalue; private int _alarmvalue;//报警界限值 private int _writebit; private bool ActionDown = false; public PLCButton() { InitializeComponent(); this.WriteSelf = true; this.Clear = true; this.AutoAction = false; } public PLCButton(IContainer container) { container.Add(this); InitializeComponent(); } public List ClickActionList { get { return this._clickActionList; } set { this._clickActionList = value; } } public List KeyDownActionList { get { return _keyDownActionList; } set { _keyDownActionList = value; } } public List KeyUpActionList { get { return _keyUpActionList; } set { _keyUpActionList = value; } } //业务 public string MCKey { get; set; } public object MCValue { get { return _mcvalue; } set { _mcvalue = value; if (Convert.ToInt32(value) >= _alarmvalue) { base.BackColor = this.NewFillColor; if (!ActionDown && AutoAction) { Mesnac.Gui.Common.MCEventHandler openpage = new Gui.Common.MCEventHandler(); openpage.ExecuteAction(this as object, null, "Click"); ActionDown=true; } } else { base.BackColor = this.OldFillColor; ActionDown = false; }; } } public IBaseControl MCRoot { get { return null; } set { ; } } [TypeConverter(typeof(DataSourceConverter))] [Description("数据连接"), Category("Data")] public string MCDataSourceID { get; set; } public MCDataSource MCDataSource { get; set; } [Description("是否为数据库控件"), Category("Data")] public bool IsDbControl { get; set; } [Description("初始化SQL"), Category("Data")] public string InitDataSource { get; set; } [Description("执行SQL"), Category("Data")] public string ActionDataSource { get; set; } [Description("绑定数据源"), Category("Data")] public object BindDataSource { get; set; } [Description("操作类型"), Category("Data")] public DbOptionTypes DbOptionType { get; set; } [Description("是否可见"), Category("Behavior")] public bool MCVisible { get { return this._mcVisible; } set { this._mcVisible = value == null ? true : value; if (this.Site.DesignMode) { this.Visible = true; } else { this.Visible = this._mcVisible; } } } [Description("是否可用"), Category("Behavior")] public bool MCEnabled { get { return this._mcEnabled; } set { this._mcEnabled = value == null ? true : value; if (this.Site.DesignMode) { this.Enabled = true; } else { this.Enabled = this._mcEnabled; } } } [Description("是否控制权限"), Category("Behavior")] public bool MCPurview { get; set; } /// /// 报警界限值 /// [Description("报警界限"),Category("PLC")] public int Alarmvalue { get { return _alarmvalue; } set { _alarmvalue = value; } } ///// ///// 跳转页面 ///// //public string NextPage //{ // get { return _nextpage; } // set { _nextpage = value; } //} ///// ///// 跳转页面 ///// //public int NextPageNum //{ // get { return _nextpagenum; } // set { _nextpagenum = value; } //} //是否往自己本身绑定的PLC地址写 [Description("是否写入自身"), Category("PLC")] public bool WriteSelf { get; set; } //如果不往自己绑定的写,写入地址 [Description("写入地址"), Category("PLC")] public string WriteAdress { get; set; } //是否按位写入 [Description("是否按位写入"), Category("PLC")] public bool WriteBybit { get; set; } //写入位 [Description("写入位"), Category("PLC")] public int writebit { get { return _writebit; } set { if (value > 16) { _writebit = 0; } else { _writebit = value; } ; } } [Description("该按钮对应按钮的响应地址"), Category("PLC")] public string DisplayName { get; set; } [Description("字其他位清零"), Category("PLC")] public bool Clear { get; set; } public bool IsValid { get { return _isValid; } set { _isValid = value; } } [Description("自动执行事件"), Category("PLC")] public bool AutoAction { get; set; } } }