private void vTreeChating_NodeMouseDoubleClick(object sender, VirtualTreeEventArgs e) { //保存当前聊天内容到本地 SaveChatContentToLocal(); //替换聊天对象 ToUserInfo = vTreeChating.SelectedNode.Tag as UserInfo; if (ToUserInfo == null) { return; } vTreeChating.SuspendLayout(); vTreeChating.SelectedNode.SubItems[0].Text = ""; vTreeChating.PerformLayout(); //加载本地已有聊天记录 LoadChatContent(); //获取节点用户发送过来的未读消息 List <MessageInfo> lstInfo = new List <MessageInfo>(); lstInfo = ListMessageInfo.FindAll(i => i.MessageFrom.USER_ID == ToUserInfo.USER_ID); foreach (MessageInfo item in lstInfo) { if (item.MessageAction == (int)ActionType.SendMessage) { ShowMessageText(item); } else if (item.MessageAction == (int)ActionType.SendPIc) { ShowMessagePic(item, null); } //从缓存list中移除 ListMessageInfo.Remove(item); //设置消息已读 UpdateChatLog(item); } }
private void vTreeAlluser_NodeMouseDoubleClick(object sender, VirtualTreeEventArgs e) { if (CurrentUser == null) { return; } UserInfo userInfo = vTreeAlluser.SelectedNode.Tag as UserInfo; if (userInfo == null || userInfo.USER_ID == CurrentUser.USER_ID) { return; } //保存当前聊天内容到本地 SaveChatContentToLocal(); ToUserInfo = userInfo; //加载本地已有聊天记录 LoadChatContent(); if (!htChating.ContainsKey(ToUserInfo.USER_ID)) { return; } //获取节点用户发送过来的未读消息 List <MessageInfo> lstInfo = new List <MessageInfo>(); lstInfo = ListMessageInfo.FindAll(i => i.MessageFrom.USER_ID == ToUserInfo.USER_ID); foreach (MessageInfo item in lstInfo) { if (item.MessageAction == (int)ActionType.SendMessage) { ShowMessageText(item); } else if (item.MessageAction == (int)ActionType.SendPIc) { ShowMessagePic(item, null); } //从缓存list中移除 ListMessageInfo.Remove(item); //设置消息已读 UpdateChatLog(item); } }
/// <summary> /// 窗体激活时显示将正在聊天的新内容展示到显示框中 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ChatClient_Activated(object sender, EventArgs e) { if (ToUserInfo == null) { return; } if (vTreeChating.SelectedNode == null) { return; } //获取节点用户发送过来的未读消息 List <MessageInfo> lstInfo = new List <MessageInfo>(); lstInfo = ListMessageInfo.FindAll(i => i.MessageFrom.USER_ID == ToUserInfo.USER_ID); if (lstInfo == null || lstInfo.Count == 0) { return; } foreach (MessageInfo item in lstInfo) { if (item.MessageAction == (int)ActionType.SendMessage) { ShowMessageText(item); } else if (item.MessageAction == (int)ActionType.SendPIc) { ShowMessagePic(item, null); } //从缓存list中移除 ListMessageInfo.Remove(item); //设置消息已读 UpdateChatLog(item); } //更新当前聊天对象信息 vTreeChating.SuspendLayout(); VirtualNode node = vTreeChating.SelectedNode; node.SubItems[0].Text = ""; vTreeChating.PerformLayout(); }