public void AddOrUpdateUser(LanUser user, UpdateState updateState) { if (this.ContainsUser(user)) { UserListItem item = this[user.ID]; if ((updateState & UpdateState.NickName) != 0) { item.Update(); } this.Invalidate(item.Bounds); UserChatControl chatControl = item.ChatControl; if (chatControl != null) { chatControl.Contacter = user; chatControl.SendMessageEnabled = (user.Status != UserStatus.Offline); } if (this.SelectedUser != null && this.SelectedUser.ID == user.ID) { //当前刚好表示着聊天记录则更新 if (chatControl != null) { chatControl.RefreshMessageList(null); } } } else { UserListItem item = new UserListItem(user); item.Save(); this.Items.Add(item); } }