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

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


图中是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)
                ));

        }

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


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

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

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值