public UTab页 添加(string __标题, Control __内容) { this.u容器1.添加控件(__内容); var __标题按钮 = new Button { BackColor = Color.White, FlatStyle = FlatStyle.Flat, ForeColor = Color.FromArgb(64, 64, 64), Location = new Point(13 + _所有标题.Count * (标题宽度 + _分割间距), 3), Size = new Size(标题宽度, 23), Text = __标题, UseVisualStyleBackColor = false }; __标题按钮.FlatAppearance.BorderSize = 0; __标题按钮.Click += (object sender, EventArgs e) => { this.u容器1.激活控件(__内容); this.out指示当前.Left = __标题按钮.Left; }; this.out标题容器.Controls.Add(__标题按钮); Label __分割符 = null; if (_所有标题.Count != 0) { __分割符 = new Label { BackColor = Color.Gainsboro, Location = new Point(__标题按钮.Left - _分割间距 / 2, 5), Size = new Size(1, 20) }; this.out标题容器.Controls.Add(__分割符); } var __tab页 = new UTab页 { 标题 = __标题, 标题按钮 = __标题按钮, 内容 = __内容, 分割符 = __分割符 }; _所有标题.Add(__tab页); 激活(__tab页); UTab_SizeChanged(null, null); return(__tab页); }
private void 除(UTab页 __匹配) { this.u容器1.除控件(__匹配.内容); this.out标题容器.Controls.Remove(__匹配.标题按钮); if (__匹配.分割符 != null) { this.out标题容器.Controls.Remove(__匹配.分割符); } var __索引 = _所有标题.IndexOf(__匹配); if (__索引 != _所有标题.Count - 1) { for (int i = __索引 + 1; i < _所有标题.Count; i++) { if (i == 1) { this.out标题容器.Controls.Remove(_所有标题[i].分割符); } else { _所有标题[i].分割符.Left -= 标题宽度 + _分割间距; } _所有标题[i].标题按钮.Left -= 标题宽度 + _分割间距; if (this.u容器1.当前激活控件 == _所有标题[i].内容) { this.out指示当前.Left = _所有标题[i].标题按钮.Left; } } } _所有标题.Remove(__匹配); if (this.u容器1.当前激活控件 == __匹配.内容) { if (_所有标题.Count > 0) { 激活(_所有标题[0]); } } }
private void 激活(UTab页 __匹配) { this.u容器1.激活控件(__匹配.内容); this.out指示当前.Left = __匹配.标题按钮.Left; }