Exemplo n.º 1
0
        /// <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();
            }
        }
Exemplo n.º 2
0
 /// <summary>
 /// 由主窗体来打开指定的FormGroup
 /// </summary>
 /// <param name="formGroup">要打开的FormGroup</param>
 public void OnShowFormGroup(FormGroup formGroup)
 {
     formGroup.Show();
 }