标题:各位大侠帮小弟看下错在哪了
只看楼主
BlizzardKen
Rank: 1
来 自:广西桂林
等 级:新手上路
帖 子:36
专家分:0
注 册:2011-4-26
结帖率:33.33%
已结贴  问题点数:10 回复次数:4 
各位大侠帮小弟看下错在哪了
namespace _2_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        Button[] btns = new Button[10];
        int i;
        private void Productbutton_Click(object sender, EventArgs e)
        {
            for ( i =0; i <10; i++)
            {
                btns[i] = new Button();
                btns[i].Location =new System.Drawing.Point(0 + 70 * (i % 10),100 + 70 * (i / 10));
                btns[i].TabIndex = 1;
                btns[i].Name = (i + 1).ToString();
                btns[i].Width = 70;
                btns[i].Height = 30;
                btns[i].Text = (i + 1).ToString();
                btns[i].Click += new System.EventHandler(this.btns_Click);
                this.Controls.Add(btns[i]);
               

            }
        }
        private void btns_Click(object sender, System.EventArgs e)
        {
            
            MessageBox.Show(" 这是第"+((Button)sender).Text + "个按钮");
            
        }


     
        private void Deletebutton_Click(object sender, EventArgs e)
        {
           // Controls.Remove();
            for (i = 0; i < 10; i++)
            {
               
                this.Controls.Remove(btns[i]);
            }
        }

   

     
    }
}
我这样生成10个动态按钮
点击生成一次再点击删除是可以把这10个生成的按钮删除去,但是多点几次生成按钮之后再点删除按钮就没反应了。
各位高手帮我看下该怎么改?
搜索更多相关主题的帖子: private void public 
2012-04-25 15:12
CMYK
Rank: 2
等 级:论坛游民
帖 子:67
专家分:74
注 册:2011-9-19
得分:10 
是button初始化的问题,有两种解决方法:把数组放在其他位置初始化,比如添加个按钮让它负责初始化按钮,或者加个bool判断不要让button重复初始化
2012-04-25 17:26
BlizzardKen
Rank: 1
来 自:广西桂林
等 级:新手上路
帖 子:36
专家分:0
注 册:2011-4-26
得分:0 
回复 2楼 CMYK
谢谢这位大哥哈,小弟刚学的C
2012-04-25 18:57
BlizzardKen
Rank: 1
来 自:广西桂林
等 级:新手上路
帖 子:36
专家分:0
注 册:2011-4-26
得分:0 
回复 2楼 CMYK
如果是通过加bool来判断的话,该怎么加?
2012-04-25 20:13
lj_a_b
Rank: 2
等 级:论坛游民
帖 子:29
专家分:10
注 册:2012-1-9
得分:0 
程序代码:
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

        Button[] btns = new Button[10];
        int i;
        bool sign = false;

        private void Productbutton_Click(object sender, EventArgs e)
        {
            if (sign == false)
            {
                for (i = 0; i < 10; i++)
                {
                    btns[i] = new Button();
                    btns[i].Location = new System.Drawing.Point(0 + 70 * (i % 10), 100 + 70 * (i / 10));
                    btns[i].TabIndex = 1;
                    btns[i].Name = (i + 1).ToString();
                    btns[i].Width = 70;
                    btns[i].Height = 30;
                    btns[i].Text = (i + 1).ToString();
                    btns[i].Click += new System.EventHandler(this.btns_Click);
                    this.Controls.Add(btns[i]);
                }
                sign = true;
            }
        }

        private void btns_Click(object sender, System.EventArgs e)
        {            
            MessageBox.Show(" 这是第"+((Button)sender).Text + "个按钮");            
        }

        private void Deletebutton_Click(object sender, EventArgs e)
        {
           // Controls.Remove();
            for (i = 0; i < 10; i++)
            {               
                this.Controls.Remove(btns[i]);
            }
            sign = false;
        }

    }

根据二楼的提示,我觉得应该是这样的
2012-04-27 10:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-366508-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.114377 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved