/// <summary> /// Ajout d'un control, seul les <see cref="HorizontalTab"/> sont admis /// </summary> /// <param name="value"></param> /// <exception cref="ArgumentException">est soulevée si value n'est pas un <see cref="HorizontalTab"/></exception> public override void Add(Control value) { if (!(value is HorizontalTab)) { throw new ArgumentException("bad argument type", "value"); } HorizontalTab tab = (HorizontalTab)value; if (FOwner.IsHandleCreated) { FOwner.AddTab(tab); } else { FOwner.InsertTab(FOwner.TabsCount, tab); } base.Add(value); tab.Visible = false; if (FOwner.IsHandleCreated) { tab.Bounds = FOwner.DisplayRectangle; } ISite site1 = FOwner.Site; if (site1 != null && tab.Site == null) { site1.Container.Add(tab); } if (Count > 0 && FOwner.FSelectedIndex < 0) { FOwner.SelectFirstVisible(); } FOwner.UpdateRegion(); FOwner.UpdateSelection(false); }
internal void InvalidateTab(HorizontalTab aTab) { if (aTab != null) { InvalidateTab(Tabs.IndexOf(aTab)); } }
/// <summary> /// suppression d'un <see cref="HorizontalTab"/> /// </summary> /// <param name="value"></param> public void Remove(HorizontalTab value) { if (value == null) { throw new ArgumentNullException("value"); } this.FOwner.Controls.Remove(value); }
/// <summary> /// ajoute un <see cref="HorizontalTab"/> /// </summary> /// <param name="value"></param> public void AddTab(HorizontalTab value) { if (value == null) { throw new ArgumentNullException("value"); } FOwner.Controls.Add(value); }
/// <summary> /// renvoi true si un <see cref="HorizontalTab"/> fait parti de la collection /// </summary> /// <param name="value"></param> /// <returns></returns> public bool Contains(HorizontalTab value) { if (value == null) { throw new ArgumentNullException("value"); } return(IndexOf(value) != -1); }
/// <summary> /// renvoi un enumérateur sur la collection /// </summary> /// <returns></returns> public IEnumerator GetEnumerator() { HorizontalTab[] tabs = FOwner.GetTabs(); if (tabs == null) { tabs = new HorizontalTab[0]; } return(tabs.GetEnumerator()); }
/// <summary> /// renvoi l'index d'un <see cref="HorizontalTab"/> /// </summary> /// <param name="value"></param> /// <returns></returns> public int IndexOf(HorizontalTab value) { for (int i = 0; i < Count; i++) { if (this[i] == value) { return(i); } } return(-1); }
internal int FindTab(HorizontalTab value) { int i = 0; if (FTabControls != null) { foreach (HorizontalTab tab in FTabControls) { if (tab == value) { return(i); } i++; } } return(-1); }
/// <summary> /// /// </summary> /// <param name="index"></param> public void RemoveTabAt(int index) { //TODO: à debugger if (index < 0 || index >= TabsCount) { throw new ArgumentException("index hors limite", "index"); } HorizontalTab[] tmpArray = new HorizontalTab[TabsCount - 1]; if (index < tmpArray.Length) { Array.Copy(FTabControls, index + 1, FTabControls, index, tmpArray.Length - index); } if (tmpArray.Length > 0) { Array.Copy(FTabControls, 0, tmpArray, 0, tmpArray.Length); } FTabControls = tmpArray; }
internal void InsertTab(int index, HorizontalTab value) { int length = 1; if (FTabControls != null) { length = FTabControls.Length + 1; } HorizontalTab[] tmpArray = new HorizontalTab[length]; if (length > 1) { Array.Copy(FTabControls, 0, tmpArray, 0, length - 1); } FTabControls = tmpArray; if (index < TabsCount) { Array.Copy(FTabControls, index, FTabControls, index + 1, TabsCount - index - 1); } FTabControls[index] = value; }
internal void AddTab(HorizontalTab value) { InsertTab(TabsCount, value); }