///*************************************************************************/
///*
///* 文件名 :ButtonList.cs
///* 程序说明 : 窗体的按钮列表.
///* 原创作者 :孙中吕
///*
///* Copyright 2006-2021 C/S框架网 www.csframework.com
///*
///**************************************************************************/
using System.Collections;
namespace CSFrameworkV5.Core
{
///
/// 显示在主窗体的按钮列表
///
public class ButtonList : IButtonList
{
private IList _Buttons = new ArrayList();
///
/// 添加一个按钮
///
///
public void AddButton(IButtonInfo button)
{
_Buttons.Add(button);
}
///
/// 删除按钮
///
///
public void RemoveButton(string buttonName)
{
var btn = GetButtonByName(buttonName);
_Buttons.Remove(btn);
}
///
/// 删除按钮
///
///
public void RemoveButton(IButtonInfo button)
{
_Buttons.Remove(button);
}
///
/// 添加一组按钮
///
/// 按钮对象数组
public void AddRange(IButtonInfo[] buttons)
{
foreach (var btn in buttons)
if (btn != null)
_Buttons.Add(btn);
}
///
/// 添加一组按钮
///
/// 按钮对象集合
public void AddRange(IList buttons)
{
foreach (IButtonInfo btn in buttons)
if (btn != null)
_Buttons.Add(btn);
}
///
/// 跟据名称获取某个按钮
///
/// 按钮名称
///
public IButtonInfo GetButtonByName(string name)
{
foreach (IButtonInfo b in _Buttons)
{
if (b.Name == name) return b;
if (b.SubButtons.Count > 0)
foreach (var bb in b.SubButtons)
if (bb.Name == name)
return bb;
}
return new NullButton();
}
///
/// 转换为按钮数组
///
///
public IButtonInfo[] ToArray()
{
var ret = new IButtonInfo[_Buttons.Count];
for (var i = 0; i <= _Buttons.Count - 1; i++)
ret[i] = (IButtonInfo)_Buttons[i];
return ret;
}
///
/// 转换为按钮对象集合
///
///
public IList ToList()
{
return _Buttons;
}
}
}