SourceCode/PROMS/DotNetBar Source Code/TabPanelsCollection.cs

80 lines
1.6 KiB
C#

using System;
namespace DevComponents.DotNetBar
{
/// <summary>
/// Represents collection of tab panels.
/// </summary>
public class TabPanelsCollection:System.Collections.CollectionBase
{
private TabControl m_Owner;
public TabPanelsCollection(TabControl owner)
{
m_Owner=owner;
}
public int Add(TabPanel item)
{
m_Owner.NeedRecalcSize=true;
return List.Add(item);
}
public TabPanel this[int index]
{
get {return (TabPanel)(List[index]);}
set {List[index] = value;}
}
public void Insert(int index, TabPanel value)
{
value.Visible=true;
m_Owner.NeedRecalcSize=true;
List.Insert(index, value);
}
public int IndexOf(TabPanel value)
{
return List.IndexOf(value);
}
public bool Contains(TabPanel value)
{
return List.Contains(value);
}
public void Remove(TabPanel value)
{
List.Remove(value);
}
protected override void OnRemoveComplete(int index,object value)
{
base.OnRemoveComplete(index,value);
TabPanel item=value as TabPanel;
item.Visible=true;
if(m_Owner.SelectedTab==item)
m_Owner.SelectedTab=null;
m_Owner.NeedRecalcSize=true;
if(m_Owner._DesignMode)
m_Owner.Refresh();
}
protected override void OnInsertComplete(int index,object value)
{
base.OnInsertComplete(index,value);
TabPanel item=value as TabPanel;
item.Visible=true;
m_Owner.OnTabAdded(item);
m_Owner.NeedRecalcSize=true;
if(m_Owner._DesignMode)
m_Owner.Refresh();
}
public void CopyTo(TabPanel[] array, int index)
{
List.CopyTo(array, index);
}
protected override void OnClear()
{
m_Owner.OnTabsCleared();
base.OnClear();
}
}
}