コード例 #1
0
        void CallbackMethod(IAsyncResult result)
        {
            OnMessageContentClickedHander handler = (OnMessageContentClickedHander)((AsyncResult)result).AsyncDelegate;
            bool cancel = false;

            handler.EndInvoke(ref cancel, result);
        }
コード例 #2
0
        private void ucTip_ClickedLinkLabel(object sender, MessageCommunication Message, Action action, ref bool cancel)
        {
            //标记消息为已读
            if (action == Action.SetReaded)
            {
                if (messageContentClicked != null)
                {
                    messageContentClicked(Message.MessageId, action, ref cancel);
                }
                if (cancel)
                {
                    return;
                }

                plMessageList.Controls.Remove((Control)sender);
                if (plMessageList.Controls.Count == 0)
                {
                    this.Hide();
                }

                return;
            }
            //下次处理
            if (action == Action.NextTimeDeal)
            {
                plMessageList.Controls.Remove((Control)sender);
                if (plMessageList.Controls.Count == 0)
                {
                    this.Hide();
                }
                return;
            }

            //处理消息
            if (action == Action.ViewDetail)
            {
                plMessageList.Controls.Remove((Control)sender);
                if (plMessageList.Controls.Count == 0)
                {
                    this.Hide();
                }
                OnMessageContentClickedHander handler = new OnMessageContentClickedHander(LinkLabelClicked);
                IAsyncResult result = handler.BeginInvoke(Message.MessageId, action, ref cancel, new AsyncCallback(CallbackMethod), "");
            }
        }