c#怎么删除 动态生成的button控件

作者&投稿:谯盛 (若有异议请与网页底部的电邮联系)
在c#中如何删除动态生成的控件??~

用control的remove方法,前提条件你要找到他的某一特征,不管是名字还是id还是上面显示的文本,确保你要查到他。
我打个比方他在form1的panel1里面,我不知道他叫什么名字,但是知道他上面显示的是“加载”,现在我要移除他:
foreach(control ctl in this.panel1.controls) //遍历panel1中所有控件
{
if(ctl is button)//挑选出是按钮类型的
{
if(ctl.text=="加载") //挑选出上面显示是“加载”的按钮
{
this.panel1.controls.remove(ctl); //移除他
}
}
}

private void button1_Click(object sender, EventArgs e)
{
Clear(this);
//label1.Text = i.ToString();
}



private void Clear(Control ctrl)
{

foreach (Control c in Controls)
{
if (c is Button)
{
c.Dispose();
//i++;
Clear(c);
}
}
}

用Control的remove方法,前提条件你要找到他的某一特征,不管是名字还是ID还是上面显示的文本,确保你要查到他。

我打个比方他在Form1的panel1里面,我不知道他叫什么名字,但是知道他上面显示的是“加载”,现在我要移除他:

foreach(Control ctl in this.panel1.Controls)  //遍历panel1中所有控件
{
    if(ctl is Button)//挑选出是按钮类型的
    {
        if(ctl.Text=="加载") //挑选出上面显示是“加载”的按钮
        {
            this.panel1.Controls.Remove(ctl);  //移除他
        }
    }
}


Button newBtn = new Button();
newBtn.Location = new System.Drawing.Point(128, 110);
newBtn.Name = "newBtn";
newBtn.Size = new System.Drawing.Size(75, 23);
newBtn.Text = "button2";
newBtn.UseVisualStyleBackColor = true;
this.Controls.Add(newBtn);
///清除新生成的Btn
this.Controls.Remove(newBtn);

你可以这样试试 动态生成的时候,把按钮放在panel中
panel1.Controls.Add(btn);
然后删除的时候就是
panel1.Controls.Clear();

找到这个button的parent, 从他的子控件集合中移除掉销毁就可了

教你个新招:
最好的办法是: 自己托一个按钮控件,然後在designer.cs中把这个按钮的所有信息复制出来
然後把控件删除,就明白动态创建控件的最佳代码了


永寿县19858407382: 在c#中如何删除动态生成的控件?? -
蓝狗菲克: 1. 单击button1在panel上动态新建了多个label,现在想要点击选择某个动态新建的label,按button2,可以把这个label删掉 在button1_Click事件中,创建label,代码:2. Label lb1 = new Label(); lb1.Name = "panel"+j; lb1.BackColor = Color....

永寿县19858407382: c#怎么删除 动态生成的button控件
蓝狗菲克: Button newBtn = new Button(); newBtn.Location = new System.Drawing.Point(128, 110); newBtn.Name = "newBtn"; newBtn.Size = new System.Drawing.Size(75, 23); newBtn.Text = "button2"; newBtn.UseVisualStyleBackColor = true; this.Controls.Add(newBtn); ///清除新生成的Btn this.Controls.Remove(newBtn);

永寿县19858407382: c#中DataGridView 中移除自动生成的行 -
蓝狗菲克: 问题不是很明确...不过教你个思路:方法一:删除的话只能通过数据源来删除指定的行,gridview只是一个绑定数据的功能,你可以去控制生成控件功能的这段代码; 方法二:你可以不用删除这一行,因为gridview有隐藏行的功能 你可以去找控件行的这个RowIndex 然后把它的gridview.Rows[RowIndex].Visible设成false就可以;

永寿县19858407382: C#窗体中删除按钮的代码怎么写 -
蓝狗菲克: 假如说窗体Form1里面有一个按钮,你想删除的话:代码如下:this.Controls.Remove(buttnon1); 再如Form1的groupbox1里面有一个butoon2,删除的代码就是:this.groupbox1.Controls.Remove(buttnon2); 其实主要是通过Controls的remove方法或者removeAt方法,前者的参数是一个对象,后者的参数索引

永寿县19858407382: C#批量删除动态生成的控件 -
蓝狗菲克: C#的每个控件就是一个类,想生成一个控件,必须用这个类来实例化一个对象控件;比如 Label label=new Label();这就是一个对象,对象都有自己的属性,label.Text="赋值"; label.position 等等 这个对象有了,但是我们想要的是看见这个对象你就得把这个控件添加到Cotroller里面; this.Cotroller.add(label); 这样循环添加就ok啦.注意:采纳给分 谢谢 171839219

永寿县19858407382: 如何删除动态产生的控件,不能用removeAllViews();这个方法,会出错.有没有其他的方法 -
蓝狗菲克: 1,先确认动态产生的控件都加入到那个父控件的Controls集合里了,是否有命名,或者是否知道其索引号(添加顺序-1),若知道了就好办了,比如说父控件名为:parentControl 若全删很方便:parentControl.Controls.Clear(); 若删除指定的...

永寿县19858407382: 请问c# 在form.load 中用代码动态生成的控件,在form的其他控件中如何将这个控件删除? -
蓝狗菲克: 没什么区别吧,在其他控件的事件中获取到动态生成的控件(通过name什么的都可以),移除掉它就是了,都是一个窗体,没有什么难度.希望对你有帮助,还有疑问请追问或是Hi

永寿县19858407382: C#如何动态添加或删除窗体中的控件 -
蓝狗菲克: Label lbMsg = new Label(); //定义一个ID为lbMsg的Label lbMsg.Text = "Hello World!";//赋值 this.Controls.Add(lbMsg);//将ID为lbMsg的label控件放到form窗体中 lbMsg.Location = new Point(0,0); this.Controls.Remove(lbMsg);// 移除控件 控件是呈现在窗体容器中的,每一个控件对应一个类,而这些类都是派生于Controls类.

永寿县19858407382: 请问C#中的ToolStrip怎么动态移除ToolStripButton? -
蓝狗菲克: //添加 ToolStripButton ToolStripButton1=new ToolStripButton("Button1"); //实例化按钮对象 ToolStrip1.Items.Add(ToolStripButton1); //加入集合 //删除 ToolStrip1.Items.Remove(ToolStripButton1); //从集合中移除 ToolStripButton1.Dispose(); //销毁对象

永寿县19858407382: vb.net动态生成的button控件如何删除? -
蓝狗菲克: uservo user=(uservo)voinfo; String username=user.getUsername(); String password=user.getPassword(); System.out.println("your username is "+username); System.out.println("your password is "+password); List list = new ArrayList();

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网