c#如何从controls中取出控件

我声明了一个button数组,要把页面上指定的一些按钮放进这个数组中,指定的按钮很多,要把他们放进这个数组中,而且使用同一个点击事件,该怎么做?... 我声明了一个button数组,要把页面上指定的一些按钮放进这个数组中,指定的按钮很多,要把他们放进这个数组中,而且使用同一个点击事件,该怎么做? 展开
 我来答
dong_1984dd
推荐于2016-07-13 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1070
采纳率:100%
帮助的人:229万
展开全部
  1. 参考下列C# 代码:递归获取panel1上的所有控件

  2. using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsFormsApplication2
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }     
          Queue<Control> query = new Queue<Control>();

          //临时存储获取到的control控件
            /// <summary>
            /// 递归获取panel1上的所有控件,并临时存储到一个队列中
            /// </summary>
            /// <param name="item"></param>
            void DS(Control item)
            {
                for (int i = 0; i < item.Controls.Count;i++ )
                {
                    if (item.Controls[i].HasChildren)
                    {
                        DS(item.Controls[i]);
                    }
                    else
                    {
                        query.Enqueue(item.Controls[i]);
                    }

                }       
            }
            private void button1_Click(object sender, EventArgs e)
            {
                DS(panel1);
                //删除遍历到的控件
                while (query.Count != 0)
                {
                    query.Dequeue().Dispose();
                }
            }
        }
    }

创作者zUzVB1Sl31
2014-08-07 · 编程类资料、英语学习资料
创作者zUzVB1Sl31
采纳数:1331 获赞数:5975

向TA提问 私信TA
展开全部
超级简单
控件名.Controls.Add(button);
追问
我说的是取出来,不是加进去,比如说button[0] = 这里怎么把页面上的按钮从Controls集合中取出来,赋值给button[0]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
扬璞玉6e
推荐于2016-02-01 · TA获得超过223个赞
知道小有建树答主
回答量:327
采纳率:0%
帮助的人:118万
展开全部
遍历页面控件并判断
foreach (Control item in this.Controls)
{
if (item is Button)
{
Button button = item as Button;
}
}
更多追问追答
追问
加注释
追答
foreach (Control   item in this.Controls)    //this.Controls: 当前页面的所有控件           
{
if (item is Button) //判断是否为button类型
{
Button button = item as Button; //换成button类型
//to do
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
子丶夜
2014-08-07 · TA获得超过397个赞
知道小有建树答主
回答量:326
采纳率:25%
帮助的人:221万
展开全部
放的List<Button>里
foreach(Button btn in list)

btn.click += new EventHandler(btn_Click);


void btn_Click(object sender, EventArgs e)
{
Button btn = sender as Button;

btn就是你点击的按钮

}
追问
代码看不懂,加注释啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式