///*************************************************************************/ ///* ///* 文件名 :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; } } }