Exemplo n.º 1
0
        /// <summary>
        /// 删除参考点
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DeleBt_Click(object sender, EventArgs e)
        {
            string StrID1, StrID2;

            StrID1 = RID_1TB.Text;
            StrID2 = RID_2TB.Text;
            int index = NodeTypeCB.SelectedIndex;

            if ("".Equals(StrID1) || "".Equals(StrID2))
            {
                MessageBox.Show("ID不能为空!");
                return;
            }
            if (StrID1.Length != 2 || StrID2.Length != 2)
            {
                MessageBox.Show("ID格式有誤!");
                return;
            }
            byte[] ID = new byte[2];
            try
            {
                ID[0] = Convert.ToByte(StrID1, 16);
                ID[1] = Convert.ToByte(StrID2, 16);
            }
            catch (Exception)
            {
                MessageBox.Show("ID格式有误!");
                return;
            }
            if (null == area)
            {
                MessageBox.Show("區域不能為空!");
                return;
            }
            if (null == area.AreaRouter)
            {
                MessageBox.Show("參考點不存在!");
                return;
            }
            //判断
            if (null != StrRouterID && !"".Equals(StrRouterID))
            {
                if (type == 0)
                {//删除参考点
                    if (!area.AreaRouter.ContainsKey(StrID1 + StrID2))
                    {
                        MessageBox.Show("參考點不存在");
                        return;
                    }
                    else
                    {
                        //检查Tag中是否有这个可进的参考点
                        Tag tag = CommonBoxOperation.GetExistRefer(StrID1 + StrID2);
                        if (null != tag)
                        {
                            if (MessageBox.Show("卡片中存在" + StrID1 + StrID2 + "參考點可進,確定要清除這些卡片中的可進參考點嗎?", "警告", MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK)
                            {//清除警告讯息
                                #region 当Tag的可进区域中存在删除的参考点时
                                if (null == ID || ID.Length != 2)
                                {
                                    MessageBox.Show("對不起,參考點ID有誤!");
                                    return;
                                }

                                //清除Tag中所有含有指定参考点
                                ClearAllTag_EnRefer(ID);
                                //删除当前的参考点
                                area.AreaRouter.Remove(StrID1 + StrID2);
                                //重新去更新Tag中的Area树状图
                                Ps.AddCheckControl(Ps.ReferTreeView);
                                MessageBox.Show("刪除參考點完成!");
                                this.Close();
                                #endregion
                            }
                            //string taginfor = (null == tag.Name || "".Equals(tag.Name)) ? (tag.ID[0].ToString("X2") + tag.ID[1].ToString("X2")) : tag.Name + "(" + (tag.ID[0].ToString("X2") + tag.ID[1].ToString("X2")) + ")";
                            //MessageBox.Show(taginfor + "卡片中" + StrID1 + StrID2+"參考點可進,請先取消...");
                            return;
                        }
                        area.AreaRouter.Remove(StrID1 + StrID2);
                    }
                }
                else
                {
                    if (!area.AreaNode.ContainsKey(StrID1 + StrID2))
                    {
                        MessageBox.Show("數據節點不存在");
                        return;
                    }
                    else
                    {
                        area.AreaNode.Remove(StrID1 + StrID2);
                    }
                }
            }
            //删除参考点后重新刷新面板
            SysParam.RestoreShow();
            this.Close();
        }