You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
293 lines
7.2 KiB
C#
293 lines
7.2 KiB
C#
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<DesignAction> _clickActionList = new List<DesignAction>();
|
|
private List<DesignAction> _keyDownActionList = new List<DesignAction>();
|
|
private List<DesignAction> _keyUpActionList = new List<DesignAction>();
|
|
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<DesignAction> ClickActionList
|
|
{
|
|
get
|
|
{
|
|
return this._clickActionList;
|
|
}
|
|
set
|
|
{
|
|
this._clickActionList = value;
|
|
}
|
|
}
|
|
|
|
public List<DesignAction> KeyDownActionList
|
|
{
|
|
get { return _keyDownActionList; }
|
|
set { _keyDownActionList = value; }
|
|
}
|
|
|
|
public List<DesignAction> 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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 报警界限值
|
|
/// </summary>
|
|
[Description("报警界限"),Category("PLC")]
|
|
public int Alarmvalue
|
|
{
|
|
get { return _alarmvalue; }
|
|
set { _alarmvalue = value; }
|
|
}
|
|
|
|
///// <summary>
|
|
///// 跳转页面
|
|
///// </summary>
|
|
//public string NextPage
|
|
//{
|
|
// get { return _nextpage; }
|
|
// set { _nextpage = value; }
|
|
//}
|
|
|
|
///// <summary>
|
|
///// 跳转页面
|
|
///// </summary>
|
|
//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;
|
|
}
|
|
|
|
}
|
|
} |