⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 invitecontrol.cs

📁 飞信的收发使用csharp进行开发
💻 CS
📖 第 1 页 / 共 4 页
字号:
                    {
                        (node2 as BuddySelectionBuddyNode).CheckState = CheckState.Checked;
                        if (!this._selectedContacts.Contains(tag))
                        {
                            this._selectedContacts.Add(tag);
                            if (!this.AddLabel(tag.DisplayName, tag))
                            {
                                break;
                            }
                            this.FormatOtherGroupBuddyNode(node, tag, true);
                        }
                    }
                    else if (!this._selectedContacts.Contains(tag))
                    {
                        (node2 as BuddySelectionBuddyNode).CheckState = CheckState.Unchecked;
                        if ((node as BuddySelectionGroupNode).CheckState == CheckState.Checked)
                        {
                            FormatGroupCheckState(node2 as BuddySelectionBuddyNode);
                            this._framework.UnifiedMessageBox.ShowWarning(this, string.Format(StringTable.Conversation.MsgSelectLimit, this._maxSelectedCount));
                        }
                        this.FormatOtherGroupBuddyNode(node2, tag, false);
                    }
                    continue;
                }
                if (this._selectedContacts.Contains(tag))
                {
                    this._selectedContacts.Remove(tag);
                }
                this.RemoveLable(tag);
                this.RemoveTreeNodeSelect(tag);
            }
        }

        private void CheckLabel(Label label)
        {
            label.ForeColor = Color.White;
            label.BackColor = Color.Black;
        }

        private void CheckNode(PaintTreeNode node)
        {
            try
            {
                if (node.Tag is Imps.Client.Core.ContactGroup)
                {
                    this.CheckGroupNode(node);
                }
                else if (node.Tag is Imps.Client.Core.Contact)
                {
                    this.CheckContactNode(node);
                }
            }
            catch (Exception exception)
            {
                ClientLogger.WriteException(exception);
            }
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (this.components != null))
            {
                this.components.Dispose();
            }
            base.Dispose(disposing);
        }

        private void flowPanlContacts_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (e.KeyValue == 0x2e)
            {
                this.RemoveCheckedLabels();
            }
        }

        private static void FormatGroupCheckState(PaintTreeNode node)
        {
            if (node.Parent != null)
            {
                bool flag = false;
                bool flag2 = true;
                foreach (TreeNode node2 in node.Parent.Nodes)
                {
                    if ((node2 as BuddySelectionBuddyNode).CheckState != CheckState.Checked)
                    {
                        flag2 = false;
                        continue;
                    }
                    flag = true;
                }
                if (flag2)
                {
                    (node.Parent as BuddySelectionGroupNode).CheckState = CheckState.Checked;
                }
                else if (flag)
                {
                    (node.Parent as BuddySelectionGroupNode).CheckState = CheckState.Indeterminate;
                }
                else
                {
                    (node.Parent as BuddySelectionGroupNode).CheckState = CheckState.Unchecked;
                }
            }
        }

        private void FormatOtherGroupBuddyNode(TreeNode node, Imps.Client.Core.Contact contact, bool check)
        {
            if (contact.BelongToGroups.Count > 1)
            {
                for (int i = 0; i < this.treeContacts.Nodes.Count; i++)
                {
                    if (this.treeContacts.Nodes[i] != node)
                    {
                        if (this.treeContacts.Nodes[i] is BuddySelectionBuddyNode)
                        {
                            if (((this.treeContacts.Nodes[i] as BuddySelectionBuddyNode).Tag as Imps.Client.Core.Contact) == contact)
                            {
                                if (check)
                                {
                                    (this.treeContacts.Nodes[i] as BuddySelectionBuddyNode).CheckState = CheckState.Checked;
                                }
                                else
                                {
                                    (this.treeContacts.Nodes[i] as BuddySelectionBuddyNode).CheckState = CheckState.Unchecked;
                                }
                            }
                        }
                        else if (contact.BelongToGroups.Contains(((this.treeContacts.Nodes[i] as BuddySelectionGroupNode).Tag as Imps.Client.Core.ContactGroup).Id))
                        {
                            foreach (TreeNode node2 in this.treeContacts.Nodes[i].Nodes)
                            {
                                if (((node2 as BuddySelectionBuddyNode).Tag as Imps.Client.Core.Contact) != contact)
                                {
                                    continue;
                                }
                                if (check)
                                {
                                    (node2 as BuddySelectionBuddyNode).CheckState = CheckState.Checked;
                                }
                                else
                                {
                                    (node2 as BuddySelectionBuddyNode).CheckState = CheckState.Unchecked;
                                }
                                FormatGroupCheckState(node2 as PaintTreeNode);
                            }
                        }
                    }
                }
            }
        }

        private void FormatSelectInfo()
        {
            int count = this._selectedContacts.Count;
            this.lblSelectInfo.Text = string.Format(StringTable.Conversation.MsgInviteSelectedInfo, count, this._maxSelectedCount - count);
        }

        private List<Imps.Client.Core.Contact> GetAllowContacts(List<Imps.Client.Core.Contact> sourceList)
        {
            List<Imps.Client.Core.Contact> list = new List<Imps.Client.Core.Contact>();
            foreach (Imps.Client.Core.Contact contact in sourceList)
            {
                if (this.IsContactCanShow(contact))
                {
                    list.Add(contact);
                }
            }
            return list;
        }

        private Label GetLabelByContact(Imps.Client.Core.Contact contact)
        {
            for (int i = 0; i < this.flowPanlContacts.Controls.Count; i++)
            {
                if ((this.flowPanlContacts.Controls[i].Tag as Imps.Client.Core.Contact) == contact)
                {
                    return (this.flowPanlContacts.Controls[i] as Label);
                }
            }
            return null;
        }

        private int GetLabelIndex(Label label)
        {
            for (int i = 0; i < this.flowPanlContacts.Controls.Count; i++)
            {
                if (this.flowPanlContacts.Controls[i] == label)
                {
                    return i;
                }
            }
            return -1;
        }

        private void InitializeComponent()
        {
            this.components = new Container();
            this.menuDelete = new ToolStripMenuItem();
            this.menuOperation = new ContextMenuStrip(this.components);
            this.xSplitContainer = new XSplitContainer();
            this.pnlOnlyForBorderShit = new Panel();
            this.lblNoneContacts = new Label();
            this.treeContacts = new BuddySelectionTree();
            this.txtSearch = new XTextBox();
            this.lblMessage = new Label();
            this.panel1 = new Panel();
            this.panel2 = new Panel();
            this.flowPanlContacts = new FlowLayoutPanel();
            this.lblSelectInfo = new Label();
            this.menuOperation.SuspendLayout();
            this.xSplitContainer.Panel1.SuspendLayout();
            this.xSplitContainer.Panel2.SuspendLayout();
            this.xSplitContainer.SuspendLayout();
            this.pnlOnlyForBorderShit.SuspendLayout();
            this.panel1.SuspendLayout();
            this.panel2.SuspendLayout();
            base.SuspendLayout();
            this.menuDelete.Name = "menuDelete";
            this.menuDelete.Size = new Size(0x62, 0x16);
            this.menuDelete.Text = "删除";
            this.menuDelete.Click += new EventHandler(this.menuDelete_Click);
            this.menuOperation.Items.AddRange(new ToolStripItem[] { this.menuDelete });
            this.menuOperation.Name = "menuOperation";
            this.menuOperation.Size = new Size(0x63, 0x1a);
            this.xSplitContainer.BackColor = Color.Transparent;
            this.xSplitContainer.Dock = DockStyle.Fill;
            this.xSplitContainer.Location = new Point(0, 0);
            this.xSplitContainer.Name = "xSplitContainer";
            this.xSplitContainer.Orientation = Orientation.Horizontal;
            this.xSplitContainer.Panel1.BackColor = Color.Transparent;
            this.xSplitContainer.Panel1.Controls.Add(this.pnlOnlyForBorderShit);
            this.xSplitContainer.Panel1.Controls.Add(this.txtSearch);
            this.xSplitContainer.Panel1.Controls.Add(this.lblMessage);
            this.xSplitContainer.Panel1.RightToLeft = RightToLeft.No;
            this.xSplitContainer.Panel1MinSize = 0x7d;
            this.xSplitContainer.Panel2.BackColor = Color.Transparent;
            this.xSplitContainer.Panel2.Controls.Add(this.panel1);
            this.xSplitContainer.Panel2.Controls.Add(this.lblSelectInfo);
            this.xSplitContainer.Panel2.RightToLeft = RightToLeft.No;
            this.xSplitContainer.Panel2MinSize = 80;
            this.xSplitContainer.Size = new Size(0x10d, 0x19e);
            this.xSplitContainer.SplitterDistance = 0x138;
            this.xSplitContainer.TabIndex = 5;
            this.pnlOnlyForBorderShit.BackColor = Color.FromArgb(0xa4, 170, 220);
            this.pnlOnlyForBorderShit.Controls.Add(this.lblNoneContacts);
            this.pnlOnlyForBorderShit.Controls.Add(this.treeContacts);
            this.pnlOnlyForBorderShit.Dock = DockStyle.Fill;
            this.pnlOnlyForBorderShit.Location = new Point(0, 0x43);
            this.pnlOnlyForBorderShit.Name = "pnlOnlyForBorderShit";
            this.pnlOnlyForBorderShit.Padding = new Padding(1, 0, 1, 1);
            this.pnlOnlyForBorderShit.Size = new Size(0x10d, 0xf5);
            this.pnlOnlyForBorderShit.TabIndex = 5;
            this.lblNoneContacts.AutoSize = true;
            this.lblNoneContacts.BackColor = Color.White;
            this.lblNoneContacts.Location = new Point(4, 7);
            this.lblNoneContacts.Name = "lblNoneContacts";
            this.lblNoneContacts.Size = new Size(0x7f, 13);
            this.lblNoneContacts.TabIndex = 2;
            this.lblNoneContacts.Text = "没有符合您条件的好友";
            this.lblNoneContacts.Visible = false;
            this.treeContacts.BorderStyle = BorderStyle.None;
            this.treeContacts.ContactShowMode = ShowMode.SingleRow;
            this.treeContacts.Dock = DockStyle.Fill;
            this.treeContacts.FullRowSelect = true;
            this.treeContacts.HideSelection = false;
            this.treeContacts.Indent = 20;
            this.treeContacts.ItemHeight = 20;
            this.treeContacts.Location = new Point(1, 0);
            this.treeContacts.Name = "treeContacts";
            this.treeContacts.PaintSelected = true;
            this.treeContacts.SelectBorderColor = Color.FromArgb(0x83, 150, 0xc3);
            this.treeContacts.SelectedNode = null;
            this.treeContacts.SelectionColor = Color.BlueViolet;
            this.treeContacts.ShowPlusMinus = false;
            this.treeContacts.Size = new Size(0x10b, 0xf4);
            this.treeContacts.Sorted = true;
            this.treeContacts.TabIndex = 1;
            this.txtSearch.BackColor = Color.White;
            this.txtSearch.BorderStyle = BorderStyle.FixedSingle;
            this.txtSearch.Dock = DockStyle.Top;
            this.txtSearch.Font = new Font("Microsoft Sans Serif", 9f);
            this.txtSearch.ForeColor = SystemColors.ActiveBorder;
            this.txtSearch.Location = new Point(0, 0x2e);
            this.txtSearch.Margin = new Padding(2, 0, 0, 0);
            this.txtSearch.Name = "txtSearch";
            this.txtSearch.Size = new Size(0x10d, 0x15);
            this.txtSearch.TabIndex = 0;
            this.txtSearch.Text = "1112";
            this.lblMessage.Dock = DockStyle.Top;
            this.lblMessage.Location = new Point(0, 0);
            this.lblMessage.Name = "lblMessage";
            this.lblMessage.Padding = new Padding(1);
            this.lblMessage.Size = new Size(0x10d, 0x2e);
            this.lblMessage.TabIndex = 4;
            this.lblMessage.Text = "Message";
            this.panel1.BackColor = Color.FromArgb(0xa4, 170, 220);
            this.panel1.Controls.Add(this.panel2);
            this.panel1.Dock = DockStyle.Fill;
            this.panel1.Location = new Point(0, 0x11);
            this.panel1.Name = "panel1";
            this.panel1.Padding = new Padding(1);
            this.panel1.Size = new Size(0x10d, 0x51);
            this.panel1.TabIndex = 3;
            this.panel2.BackColor = Color.White;
            this.panel2.Controls.Add(this.flowPanlContacts);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -