using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using Mesnac.Controls.Base; using System; using Mesnac.Controls.Default; using System.Threading; using System.Windows.Forms; using Mesnac.Compressor.Entity; namespace Mesnac.Controls.Compressor { [ToolboxBitmap(typeof(System.Windows.Forms.ListView))] public partial class McListView : System.Windows.Forms.ListView, IPurviewControl { #region 变量 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 string _nextpage; private int _nextpagenum; private string _textName; List addBit = new List(); List reduceBit = new List(); public List AlarmList = AlarmControl.Instance.AlarmLIst; public List InsertAlarm = new List(); Dictionary AlarmString1 = new Dictionary(); Dictionary AlarmString2 = new Dictionary(); Dictionary AlarmString3 = new Dictionary(); private object _mcvalue; public McListView() { InitializeComponent(); InitColum(); } public McListView(IContainer container) { container.Add(this); InitializeComponent(); } private void InitColum() { this.Columns.Clear(); ColumnHeader ch = new ColumnHeader(); ch.Text = "序号"; ch.Width = 60; ch.TextAlign = HorizontalAlignment.Center; this.Columns.Add(ch); ColumnHeader alarm = new ColumnHeader(); alarm.Text = "报警信息"; alarm.Width = 500; alarm.TextAlign = HorizontalAlignment.Center; this.Columns.Add(alarm); ColumnHeader time = new ColumnHeader(); time.Text = "报警时间"; time.Width = 220; time.TextAlign = HorizontalAlignment.Center; this.Columns.Add(time); } #endregion #region 事件 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; } } #endregion #region 业务 //业务 public string MCKey { get; set; } #region 动画属性定义 public string TextName { get { return this._textName; } set { this._textName = value; } } #endregion public object MCValue { get { return _mcvalue; } set { //if (AlarmControl.Instance.UpdateFinish) //{ // if (AlarmControl.Instance.AlarmChange) // { // updateListView(AlarmControl.Instance.AlarmLIst); // } // AlarmControl.Instance.UpdateFinish = false; //} } } public IBaseControl MCRoot { get { return null; } set { ; } } #endregion #region 数据库连接 [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; } #endregion #region 常规属性 [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; } /// /// 跳转页面 /// public string NextPage { get { return _nextpage; } set { _nextpage = value; } } /// /// 跳转页面 /// public int NextPageNum { get { return _nextpagenum; } set { _nextpagenum = value; } } public bool IsValid { get { return _isValid; } set { _isValid = value; } } #endregion public void UpdateListView() { //if (AlarmControl.Instance.UpdateFinish) //{ if (AlarmControl.Instance.AlarmChange) { updateListView(AlarmControl.Instance.AlarmLIst); } AlarmControl.Instance.UpdateFinish = false; //} } private void updateListView(List AlarmList) { this.Items.Clear(); int index=1; foreach(AlarmInfo ai in AlarmList) { ListViewItem lvi=new ListViewItem(); lvi.Text=index.ToString(); lvi.SubItems.Add(ai.AlarmString); lvi.SubItems.Add(ai.AlarmTime.ToString("HH:mm:ss")); this.Items.Add(lvi); index++; } } } }