Newer
Older
EMS_SZ / FrmQuerySensorAlarm.cs
root on 21 Mar 2016 5 KB first
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using DevComponents.DotNetBar;

namespace Cyberpipe
{
    public partial class FrmQuerySensorAlarm : Office2007Form
    {
        MainFrm mainFrm = null;

        static FrmQuerySensorAlarm frm;
        public static void ShowForm(MainFrm mF)
        {
            if (frm == null)
            {
                frm = new FrmQuerySensorAlarm(mF);
                frm.Show(mF);
            }
            else
            {
                if (frm.WindowState == FormWindowState.Minimized)
                {
                    frm.WindowState = FormWindowState.Normal;
                }
            }
        }

        public FrmQuerySensorAlarm(MainFrm mF)
        {
            InitializeComponent();

            mainFrm = mF;            
        }
        /// <summary>
        /// 窗体初始化事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FrmQuerySensorAlarm_Load(object sender, EventArgs e)
        {
            if (Utility.sensorMarkerLayers != null)
            {
                dataGridViewXSensorList.Columns.Add("sensorType", "传感器类型");
                dataGridViewXSensorList.Columns.Add("sensorAlarmValue", "在线报警阀值");
                dataGridViewXSensorList.Columns["sensorType"].ReadOnly = true;
                
                for (int i = 0; i < Utility.sensorMarkerLayers.Count; i++)
                {
                    MarkerLayer mLayer = Utility.sensorMarkerLayers[i];

                    int rowIndex = dataGridViewXSensorList.Rows.Add();
                    dataGridViewXSensorList.Rows[rowIndex].Cells["sensorType"].Value = mLayer.layerName;
                    dataGridViewXSensorList.Rows[rowIndex].Cells["sensorAlarmValue"].Value = mLayer.alarmValue;
                }
            }
        }

        /// <summary>
        /// 启动按钮事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonXStartTimer_Click(object sender, EventArgs e)
        {
            bool isStartTimer = false;
            for (int i = 0; i < dataGridViewXSensorList.Rows.Count; i++)
            {
                string strAlarmValue = dataGridViewXSensorList.Rows[i].Cells["sensorAlarmValue"].Value.ToString();
                int alarmValue = 0;
                if (int.TryParse(strAlarmValue, out alarmValue))
                {
                    if (alarmValue > 0)
                    {
                        isStartTimer = true;
                        break;
                    }
                }
            }
            if (isStartTimer)
            {
                if (mainFrm != null && mainFrm.timerOfSensor != null)
                {
                    mainFrm.timerOfSensor.Stop();
                    mainFrm.timerOfSensor.Start();
                    MessageBox.Show("报警启动成功!", "提示");
                    this.Close();
                }
            }
            else
            {
                MessageBox.Show("请先设置传感器阀值,并且传感器阀值必须大于0!", "提示");
            }
        }
        /// <summary>
        /// 停止按钮事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void buttonXStopTimer_Click(object sender, EventArgs e)
        {
            if (mainFrm != null && mainFrm.timerOfSensor != null)
            {
                mainFrm.timerOfSensor.Stop();
                MessageBox.Show("报警已经停止!", "提示");
            }            
        }
        /// <summary>
        /// 窗体关闭事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FrmQuerySensorAlarm_FormClosing(object sender, FormClosingEventArgs e)
        {
            frm = null;
        }
        /// <summary>
        /// 表格的单元格编辑结束事件处理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dataGridViewXSensorList_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            string strValue = dataGridViewXSensorList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString().Trim();
            int iValue = 0;
            if (!int.TryParse(strValue, out iValue))
            {
                MessageBox.Show("输入的数值不符合要求!", "提示");
                dataGridViewXSensorList.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = 0;
            }
            else
            {
                for (int i = 0; i < Utility.sensorMarkerLayers.Count; i++)
                {
                    MarkerLayer mLayer = Utility.sensorMarkerLayers[i];
                    if (mLayer.layerName == dataGridViewXSensorList.Rows[e.RowIndex].Cells["sensorType"].Value.ToString().Trim())
                    {
                        mLayer.alarmValue = iValue;
                    }
                }
            }
        }
    }
}