/// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="message">窗体消息</param>
        protected override void DefWndProc(ref Message message)
        {
            switch (message.Msg)
            {
            // 要求在界面上显示特定的数据内容
            case WndMsgSender.ShowSpecificData:

                WndMsgData msg      = new WndMsgData();
                Type       dataType = msg.GetType();

                msg = (WndMsgData)message.GetLParam(dataType);

                // 身份证号码
                string id = (string)GeneralFunction.IntPtrToClass(msg.ObjectMessage, msg.BytesOfObjectMessage);

                // 在界面上显示特定的数据内容
                PositioningRecord(id);

                break;

            default:
                base.DefWndProc(ref message);
                break;
            }
        }
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="message">窗体消息</param>
        protected override void DefWndProc(ref Message message)
        {
            switch (message.Msg)
            {
            case WndMsgSender.CloseMsg:
                break;

            case WndMsgSender.PositioningMsg:
                WndMsgData msg      = new WndMsgData();     //这是创建自定义信息的结构
                Type       dataType = msg.GetType();

                msg = (WndMsgData)message.GetLParam(dataType);    //这里获取的就是作为LParam参数发送来的信息的结构

                DataTable dtMessage = UniversalFunction.PositioningOneRecord(msg.MessageContent, "零星采购申请单");

                if (dtMessage.Rows.Count == 0)
                {
                    m_billMessageServer.DestroyMessage(msg.MessageContent);
                    MessageDialog.ShowPromptMessage("未找到相关记录");
                }
                else
                {
                    dataGridView1.DataSource       = dtMessage;
                    dataGridView1.Rows[0].Selected = true;
                }
                break;

            default:
                base.DefWndProc(ref message);
                break;
            }
        }
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="m">窗体消息</param>
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            //接收自定义消息,放弃未提交的单据号
            case WndMsgSender.CloseMsg:
                // 放弃未使用的单据号
                m_billNoControl.CancelBill();
                break;

            case WndMsgSender.PositioningMsg:
                WndMsgData msg      = new WndMsgData();     //这是创建自定义信息的结构
                Type       dataType = msg.GetType();

                msg = (WndMsgData)m.GetLParam(dataType);    //这里获取的就是作为LParam参数发送来的信息的结构

                DataTable dtMessage = UniversalFunction.PositioningOneRecord(msg.MessageContent, "挑选返工返修单");

                if (dtMessage.Rows.Count == 0)
                {
                    m_msgPromulgator.DestroyMessage(msg.MessageContent);
                    MessageDialog.ShowPromptMessage("未找到相关记录");
                }
                else
                {
                    dataGridView1.DataSource       = dtMessage;
                    dataGridView1.Rows[0].Selected = true;
                }
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
Esempio n. 4
0
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="message">窗体消息</param>
        protected override void DefWndProc(ref Message message)
        {
            switch (message.Msg)
            {
            case WndMsgSender.ShowSpecificData:     // 显示特定数据的消息

                WndMsgData msg1      = new WndMsgData();
                Type       dataType1 = msg1.GetType();

                msg1 = (WndMsgData)message.GetLParam(dataType1);

                // 人员工号
                string workID = (string)GeneralFunction.IntPtrToClass(msg1.ObjectMessage, msg1.BytesOfObjectMessage);

                PositioningRecord(workID);

                break;

            case WndMsgSender.WarningNotice:        // 系统预警消息

                WndMsgData msg2      = new WndMsgData();
                Type       dataType2 = msg2.GetType();

                msg2 = (WndMsgData)message.GetLParam(dataType2);

                // 预警数据
                List <string> lstData = (List <string>)GeneralFunction.IntPtrToClass(msg2.ObjectMessage, msg2.BytesOfObjectMessage);

                PositioningRecord(lstData[0]);

                break;

            case WndMsgSender.PositioningMsg:
                WndMsgData msg      = new WndMsgData();     //这是创建自定义信息的结构
                Type       dataType = msg.GetType();

                msg = (WndMsgData)message.GetLParam(dataType);    //这里获取的就是作为LParam参数发送来的信息的结构

                DataTable dtMessage = UniversalFunction.PositioningOneRecord(msg.MessageContent, "部门调动申请单");

                if (dtMessage.Rows.Count == 0)
                {
                    m_billMessageServer.DestroyMessage(msg.MessageContent);
                    MessageDialog.ShowPromptMessage("未找到相关记录");
                }
                else
                {
                    dataGridView1.DataSource       = dtMessage;
                    dataGridView1.Rows[0].Selected = true;
                }
                break;

            default:
                base.DefWndProc(ref message);
                break;
            }
        }
Esempio n. 5
0
        /// <summary>
        /// 发送完成标志信息到消息提示窗体
        /// </summary>
        /// <param name="billNo">单据编号</param>
        private void SendFinishedFlagToMessagePromptForm(string billNo)
        {
            WndMsgData msgData = new WndMsgData();

            msgData.MessageType    = MessageTypeEnum.单据消息;
            msgData.MessageContent = string.Format("{0},{1}", labelTitle.Text, billNo);

            m_wndMsgSender.SendMessage(StapleInfo.MessagePromptForm.Handle, WndMsgSender.FinishedMsg, msgData);
        }
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="m">窗体消息</param>
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            //接收自定义消息,放弃未提交的单据号
            case WndMsgSender.CloseMsg:
                // 放弃未使用的单据号
                m_billNoControl.CancelBill();
                break;

            case WndMsgSender.PositioningMsg:
                WndMsgData msg      = new WndMsgData();     //这是创建自定义信息的结构
                Type       dataType = msg.GetType();

                msg = (WndMsgData)m.GetLParam(dataType);    //这里获取的就是作为LParam参数发送来的信息的结构

                DataTable dtMessage = UniversalFunction.PositioningOneRecord(msg.MessageContent, _Enum_BillType.ToString());

                if (dtMessage == null || dtMessage.Rows.Count == 0)
                {
                    //m_billMessageServer.DestroyMessage(msg.MessageContent);
                    MessageDialog.ShowPromptMessage("未找到相关记录");
                }
                else
                {
                    tabControl1.SelectedTab = tabControl1.TabPages[0];

                    CustomDataGridView dgv = GetDataGridView(tabControl1.SelectedTab);

                    dgv.DataSource = _ServiceFlow.ShowBusinessAllInfo(_Enum_BillType, cmbVersion.Text, new string[] { "全部" },
                                                                      checkBillDateAndStatus1.dtpStartTime.Value, checkBillDateAndStatus1.dtpEndTime.Value, tabControl1.SelectedTab.Text, msg.MessageContent);

                    Flow_BusinessInfo bussinessInfo = _ServiceFlow.GetBusinessInfo(_Enum_BillType, cmbVersion.Text);

                    foreach (DataGridViewColumn dgvc in dgv.Columns)
                    {
                        if (dgvc.HeaderText == bussinessInfo.KeysName)
                        {
                            dgvc.Visible = false;
                        }
                    }

                    dgv.Rows[0].Selected = true;
                }

                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
        private void lblMsg_Click(object sender, EventArgs e)
        {
            WndMsgData sendData = new WndMsgData();

            sendData.MessageType    = this.MessageType;
            sendData.NoticeSource   = this.NoticeSource;
            sendData.MessageContent = this.MessageID.ToString();
            m_wndMsgSender.SendMessage(m_noticeForm.Handle, WndMsgSender.PositioningMsg, sendData);

            if (OnControlClick != null)
            {
                OnControlClick(sender, e);
            }
        }
        /// <summary>
        /// 处理消息
        /// </summary>
        /// <param name="msg">要处理的消息</param>
        private void DisposeMessage(Message msg)
        {
            Type dataType = m_msgData.GetType();

            m_msgData = (WndMsgData)msg.GetLParam(dataType);

            if (msg.Msg == WndMsgSender.FinishedMsg)
            {
                if (m_msgData.MessageType == MessageTypeEnum.单据消息)
                {
                    string[] info     = m_msgData.MessageContent.Split(StapleInfo.SplitChar);
                    string   billType = info[0];
                    string   billNo   = info[1];

                    for (int i = 0; i < this.Controls.Count; i++)
                    {
                        UserControlMessageLabel msgLabel = this.Controls[i] as UserControlMessageLabel;
                        if (msgLabel.Message.Contains(billType) && msgLabel.Message.Contains(billNo))
                        {
                            this.Controls.RemoveAt(i);
                            m_dicMsgLabel.Remove(msgLabel.Name);
                            break;
                        }
                    }
                }
                else if (m_msgData.MessageType == MessageTypeEnum.知会消息)
                {
                    string name = m_msgData.NoticeSource.ToString().Substring(0, 2) + m_msgData.MessageContent;

                    for (int i = 0; i < this.Controls.Count; i++)
                    {
                        if (this.Controls[i].Name == name)
                        {
                            m_dicMsgLabel.Remove(this.Controls[i].Name);
                            this.Controls.RemoveAt(i);
                            //Controls[i].Dispose();
                            break;
                        }
                    }
                }

                ControlFormSize();

                if (this.Controls.Count == 0)
                {
                    this.Visible = false;
                }
            }
        }
Esempio n. 9
0
        /// <summary>
        /// 定位消息
        /// </summary>
        /// <param name="msg"></param>
        private void PositioningMessage(WndMsgData msg)
        {
            long msgId = Convert.ToInt64(msg.MessageContent);

            if (msg.MessageType == MessageTypeEnum.单据消息)
            {
                treeView.SelectedNode = treeView.Nodes.Find("任务_待处理_单据", true)[0];
            }
            else if (msg.MessageType == MessageTypeEnum.知会消息)
            {
                if (msg.NoticeSource == NoticeSource.单据处理后知会)
                {
                    treeView.SelectedNode = treeView.Nodes.Find("通知_单据处理后知会", true)[0];
                }
                else if (msg.NoticeSource == NoticeSource.日常事务)
                {
                    treeView.SelectedNode = treeView.Nodes.Find("通知_日常事务", true)[0];
                }
            }

            string strColName = "";

            foreach (DataGridViewColumn col in dataGridView1.Columns)
            {
                if (col.Visible)
                {
                    strColName = col.Name;
                    break;
                }
            }

            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                if ((long)dataGridView1.Rows[i].Cells["序号"].Value == msgId)
                {
                    dataGridView1.FirstDisplayedScrollingRowIndex = i;
                    dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[strColName];
                    break;
                }
            }

            if (msg.MessageType == MessageTypeEnum.单据消息 || (msg.MessageType == MessageTypeEnum.知会消息 &&
                                                            msg.NoticeSource == NoticeSource.单据处理后知会))
            {
                定位单据ToolStripMenuItem_Click(null, null);
            }
        }
Esempio n. 10
0
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="m">窗体消息</param>
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            case WndMsgSender.PositioningMsg:
                ////this.Activate();

                WndMsgData msg = new WndMsgData();     //这是创建自定义信息的结构

                Type dataType = msg.GetType();
                msg = (WndMsgData)m.GetLParam(dataType);    //这里获取的就是作为LParam参数发送来的信息的结构
                PositioningMessage(msg);
                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
Esempio n. 11
0
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="m">窗体消息</param>
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            //接收自定义消息,放弃未提交的单据号
            case WndMsgSender.CloseMsg:
                break;

            case WndMsgSender.PositioningMsg:
                WndMsgData msg      = new WndMsgData();     //这是创建自定义信息的结构
                Type       dataType = msg.GetType();

                msg = (WndMsgData)m.GetLParam(dataType);    //这里获取的就是作为LParam参数发送来的信息的结构

                DataTable dtMessage = UniversalFunction.PositioningOneRecord(msg.MessageContent, "重新打印");

                if (dtMessage.Rows.Count == 0)
                {
                    Flow_BillFlowMessage billmsg = m_billFlowMsg.GetMessage(BasicInfo.LoginID, "重新打印", msg.MessageContent);

                    m_billFlowMsg.DestroyMessage(BasicInfo.LoginID, billmsg.序号);

                    MessageDialog.ShowPromptMessage("未找到相关记录");
                }
                else
                {
                    dgvShowInfo.DataSource       = dtMessage;
                    dgvShowInfo.Rows[0].Selected = true;
                }

                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="message">窗体消息</param>
        protected override void DefWndProc(ref Message message)
        {
            switch (message.Msg)
            {
            case WndMsgSender.ShowSpecificData:     // 显示特定数据的消息

                WndMsgData msg1      = new WndMsgData();
                Type       dataType1 = msg1.GetType();

                msg1 = (WndMsgData)message.GetLParam(dataType1);

                // 人员工号
                string workID = (string)GeneralFunction.IntPtrToClass(msg1.ObjectMessage, msg1.BytesOfObjectMessage);

                PositioningRecord(workID);

                break;

            case WndMsgSender.WarningNotice:        // 系统预警消息

                WndMsgData msg2      = new WndMsgData();
                Type       dataType2 = msg2.GetType();

                msg2 = (WndMsgData)message.GetLParam(dataType2);

                // 预警数据
                List <string> lstData = (List <string>)GeneralFunction.IntPtrToClass(msg2.ObjectMessage, msg2.BytesOfObjectMessage);

                PositioningRecord(lstData[1]);

                break;

            default:
                base.DefWndProc(ref message);
                break;
            }
        }
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="m">窗体消息</param>
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            //接收自定义消息,放弃未提交的单据号
            case WndMsgSender.CloseMsg:
                // 放弃未使用的单据号
                m_billNoControl.CancelBill();
                break;

            case WndMsgSender.PositioningMsg:
                WndMsgData msg      = new WndMsgData();     //这是创建自定义信息的结构
                Type       dataType = msg.GetType();

                msg = (WndMsgData)m.GetLParam(dataType);    //这里获取的就是作为LParam参数发送来的信息的结构

                DataTable dtMessage = UniversalFunction.PositioningOneRecord(msg.MessageContent, "不合格品隔离处置单");

                if (dtMessage.Rows.Count == 0)
                {
                    m_billMessageServer.DestroyMessage(msg.MessageContent);
                    MessageDialog.ShowPromptMessage("未找到相关记录");
                }
                else
                {
                    RefreshDataGirdView(GlobalObject.DataConverter.DataTableToList <View_S_IsolationManageBill>(dtMessage));

                    dataGridView1.Rows[0].Selected = true;
                }

                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
Esempio n. 14
0
        /// <summary>
        /// 将通知类消息批示已阅
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnReadNotice_Click(object sender, EventArgs e)
        {
            if (CheckOperation(sender as ToolStripDropDownItem))
            {
                try
                {
                    for (int i = 0; i < dataGridView1.SelectedRows.Count; i++)
                    {
                        if ((dataGridView1.Tag as List <Flow_Notice>) != null)
                        {
                            Flow_Notice notice = (dataGridView1.Tag as List <Flow_Notice>)[dataGridView1.SelectedRows[i].Index];
                            m_flowNotice.ReadNotice(BasicInfo.LoginID, notice.序号);

                            WndMsgData msgData = new WndMsgData();

                            msgData.MessageType    = MessageTypeEnum.知会消息;
                            msgData.NoticeSource   = (NoticeSource)Enum.Parse(typeof(NoticeSource), notice.来源);
                            msgData.MessageContent = notice.序号.ToString();

                            m_wndMsgSender.SendMessage(StapleInfo.MessagePromptForm.Handle, WndMsgSender.FinishedMsg, msgData);
                        }
                        else if ((dataGridView1.Tag as List <Flow_WarningNotice>) != null)
                        {
                            Flow_WarningNotice notice = (dataGridView1.Tag as List <Flow_WarningNotice>)[dataGridView1.SelectedRows[i].Index];
                            PlatformFactory.GetObject <IWarningNotice>().ReadWarningNotice(BasicInfo.LoginID, notice.序号);
                        }
                    }

                    InitForm(InitMode.刷新数据显示, m_currentNode);
                }
                catch (Exception err)
                {
                    MessageDialog.ShowErrorMessage(err.Message);
                }
            }
        }
Esempio n. 15
0
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="m">窗体消息</param>
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            //接收自定义消息,放弃未提交的单据号
            case WndMsgSender.CloseMsg:
                break;

            case WndMsgSender.PositioningMsg:
                WndMsgData msg      = new WndMsgData();     //这是创建自定义信息的结构
                Type       dataType = msg.GetType();

                msg = (WndMsgData)m.GetLParam(dataType);    //这里获取的就是作为LParam参数发送来的信息的结构

                DataTable dtMessage = UniversalFunction.PositioningOneRecord(msg.MessageContent, "采购计划");

                if (dtMessage.Rows.Count == 0)
                {
                    m_msgPromulgator.DestroyMessage(msg.MessageContent);
                    MessageDialog.ShowPromptMessage("未找到相关记录");
                }
                else
                {
                    cmbYear.Text  = msg.MessageContent.ToString().Substring(0, 4);
                    cmbMonth.Text = msg.MessageContent.ToString().Substring(4, 2);
                    btnFind_Click(null, null);
                    //dataGridView1.DataSource = dtMessage;
                }

                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
        /// <summary>
        /// 重新窗体消息处理函数
        /// </summary>
        /// <param name="m">窗体消息</param>
        protected override void DefWndProc(ref Message m)
        {
            switch (m.Msg)
            {
            //接收自定义消息,放弃未提交的单据号
            case WndMsgSender.CloseMsg:
                m_serverQualityProblem.DeleteExcessSchedule(out m_strErr);
                // 放弃未使用的单据号
                break;

            case WndMsgSender.PositioningMsg:
                WndMsgData msg      = new WndMsgData();     //这是创建自定义信息的结构
                Type       dataType = msg.GetType();

                msg = (WndMsgData)m.GetLParam(dataType);    //这里获取的就是作为LParam参数发送来的信息的结构

                DataTable dtMessage = UniversalFunction.PositioningOneRecord(msg.MessageContent, "质量问题整改处置单");

                if (dtMessage.Rows.Count == 0)
                {
                    m_billMessageServer.DestroyMessage(msg.MessageContent);
                    MessageDialog.ShowPromptMessage("未找到相关记录");
                }
                else
                {
                    dataGridView1.DataSource       = dtMessage;
                    dataGridView1.Rows[0].Selected = true;
                }

                break;

            default:
                base.DefWndProc(ref m);
                break;
            }
        }
        /// <summary>
        /// 检查是否有新的单据消息
        /// </summary>
        private void CheckBillMessage()
        {
            // 发消息到主窗体的标志
            bool sendMsgToMainForm = false;

            IQueryable <Flow_BillFlowMessage> result = m_billMsg.GetReceivedMessage(BasicInfo.LoginID);

            List <Flow_BillFlowMessage> dataSource = (from r in result
                                                      where r.单据状态 != BillStatus.已完成.ToString()
                                                      orderby r.发起时间 descending
                                                      select r).Take(20).ToList();

            foreach (var item in dataSource)
            {
                if (m_dicMsgLabel.ContainsKey("BillMsg" + item.序号.ToString()))
                {
                    continue;
                }

                UserControlMessageLabel msgLabel = new UserControlMessageLabel(StapleInfo.MainForm, GetBillMessage(item));
                msgLabel.Name        = "BillMsg" + item.序号.ToString();
                msgLabel.MessageID   = item.序号;
                msgLabel.MessageType = MessageTypeEnum.单据消息;
                msgLabel.Date        = item.发起时间;

                if (!GlobalObject.GeneralFunction.IsNullOrEmpty(item.发起方用户编码))
                {
                    if (!m_dicUserName.ContainsKey(item.发起方用户编码))
                    {
                        m_dicUserName.Add(item.发起方用户编码, m_user.GetUser(item.发起方用户编码).姓名);
                    }
                }

                msgLabel.UserName = m_dicUserName[item.发起方用户编码];

                if (msgLabel.Message.Contains("退货"))
                {
                    msgLabel.ForeColor = Color.Red;
                }
                else
                {
                    msgLabel.ForeColor = Color.Blue;
                }

                msgLabel.Dock = DockStyle.Top;
                this.Controls.Add(msgLabel);

                m_dicMsgLabel.Add(msgLabel.Name, msgLabel);
                msgLabel.OnControlClick += new EventHandler(this.UserControlMessageLabel_Clicked);

                if (!sendMsgToMainForm)
                {
                    sendMsgToMainForm = true;
                    WndMsgData sendData = new WndMsgData();
                    sendData.MessageType    = msgLabel.MessageType;
                    sendData.NoticeSource   = msgLabel.NoticeSource;
                    sendData.MessageContent = msgLabel.MessageID.ToString();
                    m_wndMsgSender.SendMessage(StapleInfo.MainForm.Handle, WndMsgSender.NewFlowMsg, sendData);
                }
            }

            for (int i = 0; i < this.Controls.Count; i++)
            {
                Control msgLabel = this.Controls[i];

                if (msgLabel.Name.Contains("BillMsg"))
                {
                    if (dataSource.FindIndex(p => p.序号 == Convert.ToInt32(msgLabel.Name.Substring(7))) < 0)
                    {
                        this.Controls.RemoveAt(i--);
                        m_dicMsgLabel.Remove(msgLabel.Name);
                        msgLabel.Dispose();
                    }
                }
            }
        }
        /// <summary>
        /// 检查是否有新的知会类消息
        /// </summary>
        private void CheckNoticeMessage()
        {
            // 发消息到主窗体的标志
            bool sendMsgToMainForm = false;

            foreach (NoticeSource noticeEnum in Enum.GetValues(typeof(NoticeSource)))
            {
                IQueryable <Flow_Notice> noticeData = m_flowNotice.GetNotice(BasicInfo.LoginID, noticeEnum);

                List <Flow_Notice> dataSource = new List <Flow_Notice>();

                // 按时间顺序逆向排序
                noticeData = from r in noticeData
                             orderby r.发送时间 descending
                             select r;

                // 剔除自己发送的信息
                if (noticeData.Count() > 0)
                {
                    dataSource = (from r in noticeData where r.发送人 != BasicInfo.LoginID select r).Take(20).ToList();
                }

                string prefix = noticeEnum.ToString().Substring(0, 2);

                foreach (var item in dataSource)
                {
                    if (m_dicMsgLabel.ContainsKey(prefix + item.序号.ToString()))
                    {
                        continue;
                    }

                    UserControlMessageLabel msgLabel = new UserControlMessageLabel(StapleInfo.MainForm, GetNoticeMessage(item));
                    msgLabel.Name         = prefix + item.序号.ToString();
                    msgLabel.MessageID    = item.序号;
                    msgLabel.MessageType  = MessageTypeEnum.知会消息;
                    msgLabel.NoticeSource = noticeEnum;
                    msgLabel.Date         = item.发送时间;

                    if (!GlobalObject.GeneralFunction.IsNullOrEmpty(item.发送人))
                    {
                        if (!m_dicUserName.ContainsKey(item.发送人))
                        {
                            m_dicUserName.Add(item.发送人, m_user.GetUser(item.发送人).姓名);
                        }
                    }

                    msgLabel.UserName = m_dicUserName[item.发送人];

                    if (item.优先级 == "高")
                    {
                        msgLabel.ForeColor = Color.Red;
                    }

                    msgLabel.Dock = DockStyle.Top;
                    this.Controls.Add(msgLabel);

                    m_dicMsgLabel.Add(msgLabel.Name, msgLabel);
                    msgLabel.OnControlClick += new EventHandler(this.UserControlMessageLabel_Clicked);

                    if (!sendMsgToMainForm)
                    {
                        sendMsgToMainForm = true;

                        WndMsgData sendData = new WndMsgData();

                        sendData.MessageType    = msgLabel.MessageType;
                        sendData.NoticeSource   = msgLabel.NoticeSource;
                        sendData.MessageContent = msgLabel.MessageID.ToString();
                        m_wndMsgSender.SendMessage(StapleInfo.MainForm.Handle, WndMsgSender.NewFlowMsg, sendData);
                    }
                }

                for (int i = 0; i < this.Controls.Count; i++)
                {
                    Control msgLabel = this.Controls[i];

                    if (msgLabel.Name.Contains(prefix))
                    {
                        int findIndex = Convert.ToInt32(msgLabel.Name.Substring(2));

                        if (dataSource.FindIndex(p => p.序号 == findIndex) < 0)
                        {
                            this.Controls.RemoveAt(i--);
                            m_dicMsgLabel.Remove(msgLabel.Name);
                            msgLabel.Dispose();
                        }
                    }
                }
            }
        }