1
yhj
2024-07-24 5e5d945e91568b973faa27d8ab0bcef99fc4a6c5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
///*************************************************************************/
///*
///* 文件名    :ButtonList.cs                                
///* 程序说明  : 窗体的按钮列表.
///* 原创作者  :孙中吕 
///* 
///* Copyright 2006-2021 C/S框架网 www.csframework.com
///*
///**************************************************************************/
 
using System.Collections;
 
namespace CSFrameworkV5.Core
{
    /// <summary>
    /// 显示在主窗体的按钮列表
    /// </summary>
    public class ButtonList : IButtonList
    {
        private IList _Buttons = new ArrayList();
 
        /// <summary>
        /// 添加一个按钮
        /// </summary>
        /// <param name="button"></param>
        public void AddButton(IButtonInfo button)
        {
            _Buttons.Add(button);
        }
 
        /// <summary>
        /// 删除按钮
        /// </summary>
        /// <param name="p"></param>
        public void RemoveButton(string buttonName)
        {
            var btn = GetButtonByName(buttonName);
            _Buttons.Remove(btn);
        }
 
        /// <summary>
        /// 删除按钮
        /// </summary>
        /// <param name="button"></param>
        public void RemoveButton(IButtonInfo button)
        {
            _Buttons.Remove(button);
        }
 
        /// <summary>
        ///  添加一组按钮
        /// </summary>
        /// <param name="buttons">按钮对象数组</param>
        public void AddRange(IButtonInfo[] buttons)
        {
            foreach (var btn in buttons)
                if (btn != null)
                    _Buttons.Add(btn);
        }
 
        /// <summary>
        /// 添加一组按钮
        /// </summary>
        /// <param name="buttons">按钮对象集合</param>
        public void AddRange(IList buttons)
        {
            foreach (IButtonInfo btn in buttons)
                if (btn != null)
                    _Buttons.Add(btn);
        }
 
        /// <summary>
        /// 跟据名称获取某个按钮
        /// </summary>
        /// <param name="name">按钮名称</param>
        /// <returns></returns>
        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();
        }
 
        /// <summary>
        /// 转换为按钮数组
        /// </summary>
        /// <returns></returns>
        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;
        }
 
        /// <summary>
        /// 转换为按钮对象集合
        /// </summary>
        /// <returns></returns>
        public IList ToList()
        {
            return _Buttons;
        }
    }
}