public virtual void Assign(vTabCollection collection) { this.BeginUpdate(); try { base.Clear(); for (int i = 0; i < collection.Count; i++) { vTabPage page = collection[i]; vTabPage newPage = new vTabPage(); newPage.Assign(page); this.Add(newPage); } } finally { this.EndUpdate(); } }
public virtual bool Contains(vTabPage page) { return base.List.Contains(page); }
public virtual int Add(vTabPage page) { int res = base.IndexOf(page); if (res == -1) res = base.List.Add(page); return res; }
public virtual void AddRange(vTabPage[] pages) { this.BeginUpdate(); try { foreach (vTabPage page in pages) { base.List.Add(page); } } finally { this.EndUpdate(); } }
public void AddTab(vTabPage page, bool autoSelect) { page.Dock = DockStyle.Fill; this._tabPages.Add(page); if ((autoSelect && page.Visible) || (page.Visible && this._tabPages.DrawnCount < 1)) { this.SelectedPage = page; this.SelectPage(page); } }
public override void Initialize(System.ComponentModel.IComponent component) { base.Initialize(component); this._tabPage = component as vTabPage; }
private void SetDefaultSelected() { if (this._tabPages.Count > 0) { this._selecedPage = this._tabPages[0]; } for (int i = 0; i < this._tabPages.Count; i++) { vTabPage page = this._tabPages[i]; page.Dock = DockStyle.Fill; } }
public virtual vTabPage MoveTo(int newIndex, vTabPage page) { int currentIndex = base.List.IndexOf(page); if (currentIndex >= 0) { base.RemoveAt(currentIndex); this.Insert(0, page); return page; } return null; }
private void OnCalcTabPage(Graphics g, vTabPage page) { RectangleF buttonRect = new RectangleF(new Point(this._startPos, 0), HEADER_SIZE); page.StripBounds = buttonRect; this._startPos += (int)HEADER_SIZE.Width - 1; }
/// <summary> /// 绘制选项卡的Header /// </summary> private void OnDrawTabPage(Graphics g, vTabPage page) { Rectangle pageRect = Rectangle.Round(page.StripBounds); if (page.Selected) { g.DrawImage( ImageToolbar_Hover, pageRect, new Rectangle(Point.Empty, ImageToolbar_Hover.Size), GraphicsUnit.Pixel); } else { switch (page.StripState) { case EMouseState.Normal: case EMouseState.MouseLeave: break; case EMouseState.MouseMove: case EMouseState.MouseDown: case EMouseState.MouseUp: g.DrawImage( ImageToolbar_Hover, pageRect, new Rectangle(Point.Empty, ImageToolbar_Hover.Size), GraphicsUnit.Pixel); break; } } if (page.Image != null) { Rectangle imageRect = new Rectangle(); imageRect.X = pageRect.X + (pageRect.Width - 48) / 2; //imageRect.Y += 10; imageRect.Size = new Size(48, 48); g.DrawImage( page.Image, imageRect, new Rectangle(Point.Empty, page.Image.Size), GraphicsUnit.Pixel); } else { Rectangle imageRect = new Rectangle(); imageRect.X = pageRect.X + (pageRect.Width - 48) / 2; imageRect.Size = new Size(48, 48); g.DrawRectangle(Pens.Red, imageRect); } //计算文字的绘制区域 if (page.Title != string.Empty) { SizeF size = g.MeasureString(page.Title, page.Font); RectangleF textRect = new RectangleF(); textRect.X = pageRect.X + (pageRect.Width - size.Width) / 2; textRect.Y = pageRect.Height - 20; textRect.Width = pageRect.Width; textRect.Height = 20; using (Brush brush = new SolidBrush(this.ForeColor)) { g.DrawString(page.Title, this.Font, brush, textRect, this._sf); } } page.IsDrawn = true; }
internal void UnSelectPage(vTabPage page) { page.Selected = false; }
internal void SelectPage(vTabPage page) { if (page != null) { page.Dock = DockStyle.Fill; page.Visible = true; page.Selected = true; } }
public void RemoveTab(vTabPage page) { int tabIndex = this._tabPages.IndexOf(page); if (tabIndex >= 0) { this.UnSelectPage(page); this._tabPages.Remove(page); } if (this._tabPages.Count > 0) { if (this._tabPages[tabIndex - 1] != null) this.SelectedPage = this._tabPages[tabIndex - 1]; else this.SelectedPage = this._tabPages.FirstVisible; } }
public virtual int IndexOf(vTabPage page) { return base.List.IndexOf(page); }
public TabPageChangeEventArgs(vTabPage page, ETabPageChangeType type) { this._type = type; this._page = page; }
public virtual void Insert(int index, vTabPage page) { if (this.Contains(page)) return; base.List.Insert(index, page); }
public TabPageClosingEventArgs(vTabPage page) { this._page = page; }
public virtual void Remove(vTabPage page) { if (base.List.Contains(page)) base.List.Remove(page); }
public void AddTab(vTabPage page) { this.AddTab(page, false); }