C#建立控件数组,实现控件批量操作

最近在做一个小项目时,遇到一个问题,如下图。

C#建立控件数组,实现控件批量操作_第1张图片

图中是9个按钮(Button)控件,现在希望能够给9个按钮添加一个特效,就是点击之后的按钮左端会有蓝条表示该按钮已被点击,同时只有一个按钮会有这样的效果。

刚开始的时候纠结了一阵子怎么来写,后来想到了C#很多类型的数据都可以建立一个统一的数组,那么控件行不行呢……笔者尝试着按照C#建立数组的格式 类型名+方括号,也就是Button[]来建立一个按钮的数组,居然成功了……也就是说,C#中是支持把控件像数据一样建立一个类似数组的组来进行批量的操作和管理。

知道“居然还可以有这种操作以后”,这种效果的实现方法也就瞬间想出来了。

建立一个接受Button类型变量的函数,把9个按钮放进一个组中,foreach一下,每个Button的图片先改成没有蓝条的,然后再根据接受的Button变量,只调整这一个按钮的图片为有蓝条的即可。参考代码如下:

public void button_bg(Button btn)
        {
            Button[] sidebtns= { btn_1,btn_2,btn_3};

            foreach (var item in sidebtns)
            {
                item.Background = new ImageBrush(new BitmapImage(
                    new Uri(@"pack://application:,,,/Resources/button_ns.png", UriKind.Absolute)
                ));
            }

            btn.Background = new ImageBrush(new BitmapImage(
                    new Uri(@"pack://application:,,,/Resources/button_s.png", UriKind.Absolute)
                ));

        }

就可以达到需要的效果了。

C#建立控件数组,实现控件批量操作_第2张图片

除去Button,其他控件也可以如此进行批量操作,方法大致都是一样的。

希望对大家能够有所帮助。

你可能感兴趣的:(C#,.Net,控件,控件数组,数组,批量操作,C#)