/// <summary> /// 开始对话,如果已经打开对话框则跳转 /// </summary> protected void StartChatting() { // 选中的好友数 int count = listViewFriends.SelectedItems.Count; if (count == 1) // 私聊 { string key = listViewFriends.SelectedItems[0].Text; if (!formChats.ContainsKey(key)) { formChats.Add(key, new FormChat(this, key)); } else if (formChats[key].Disposing || formChats[key].IsDisposed) { formChats.Remove(key); formChats.Add(key, new FormChat(this, key)); } formChats[key].Show(); } else if (count > 1) // 群聊 { string[] keys = new string[count]; // 保证自己在列表内 bool contained = false; for (int i = 0; i < count; i++) { keys[i] = listViewFriends.SelectedItems[i].Text; if (keys[i] == MyName) { contained = true; } } if (!contained) { string[] tmp = keys; keys = new string[count + 1]; keys[0] = MyName; for (int i = 1; i < count + 1; i++) { keys[i] = tmp[i - 1]; } } FormGroup fg = new FormGroup(this, keys); formGroups.Add(fg); foreach (ListViewItem lvi in listViewFriends.SelectedItems) { if (lvi.ImageIndex == 0) // 不在线 { fg.OnLogoffRefresh(lvi.Text); } else // 在线 { fg.OnLoginRefresh(lvi.Text); } } fg.Show(); } }
/// <summary> /// 由主窗体来打开指定的FormGroup /// </summary> /// <param name="formGroup">要打开的FormGroup</param> public void OnShowFormGroup(FormGroup formGroup) { formGroup.Show(); }