c#删除窗体控件

问题描述

窗体上有10几个动态添加的label控件,现在想根据name一次性删除,但是遍历删除只会删除一半为什么,应该是这10几个都会删除~~~?

解决方案

解决方案二:
递归谢谢
解决方案三:
foreach(Controlobj5inthis.Controls)//判断界面上的控件{if(obj5.GetType.ToString()="System.Windows.Forms.Label")//如果控件是lable{//此时只要执行你的删除控件代码即可}}
解决方案四:
没说的,递归
解决方案五:
给一个递归代码啊,三位LS的~~~多谢
解决方案六:
privatevoiddelLabel(controlcon){foreach(Controlobjincon.Controls){if(obj.GetType.ToString()="System.Windows.Forms.Label")//如果控件是lable{//此时只要执行你的删除控件代码即可}delLabel(obj);}}

调用时传this进去就行了
解决方案七:
引用5楼slin60的回复:

C#codeprivatevoiddelLabel(controlcon){foreach(Controlobjincon.Controls){if(obj.GetType.ToString()="System.Windows.Forms.Label")//如果控件是lable{//此时只要执行你的删除控件代码即可}delLabel(obj);}}调用时传this进去就行了

学习
解决方案八:
引用楼主jackeyabc的帖子:

窗体上有10几个动态添加的label控件,现在想根据name一次性删除,但是遍历删除只会删除一半为什么,应该是这10几个都会删除~~~?

这是因为在foreach遍历时,删除控件,使得this.controls发生了变化.少了数据元素,结果只能删除一半.
解决方案九:
解决方法:for(inti=0;i<this.Controls.Count;i++){//注意:Controls中的控件是动态变化的.foreach(Controlconinthis.Controls){if(conisLabel)this.Controls.Remove(con);}}

解决方案十:
现在想想楼上说的有理
解决方案十一:
问题已经解决,跟大家共享,其实楼上几位的也不能解决问题,我刚刚也是按照那个方法~~~publicstaticvoidRemoveControl(Controlc,stringR_name){inti=0;object[]obj=newobject[ControlCount(c,R_name)];foreach(Controlchinc.Controls){if((chisLabel)){if(ch.Name.Substring(0,2)==R_name){obj[i]=ch;i++;}}}for(intx=0;x<obj.Length;x++){c.Controls.Remove((Label)obj[x]);}}
解决方案十二:
引用10楼jackeyabc的回复:

问题已经解决,跟大家共享,其实楼上几位的也不能解决问题,我刚刚也是按照那个方法~~~publicstaticvoidRemoveControl(Controlc,stringR_name){inti=0;object[]obj=newobject[ControlCount(c,R_name)];foreach(Controlchinc.Controls){if((chisLabel)){…

来晚了,这种情况就是用循环倒着来就可以了,用foreach也没办法解决成员被删除后的指针重定位
解决方案十三:
楼上正解!!!!!!!!!!
解决方案十四:
递归的应该没问题
解决方案十五:
引用10楼jackeyabc的回复:

问题已经解决,跟大家共享,其实楼上几位的也不能解决问题,我刚刚也是按照那个方法~~~publicstaticvoidRemoveControl(Controlc,stringR_name){inti=0;object[]obj=newobject[ControlCount(c,R_name)];foreach(Controlchinc.Controls){if((chisLabel)){…

很好!!
解决方案:
for(inti=0i<this.Controls.Count;i++)//判断界面上的控件{Controlobj5=this.Controls[i];if(obj5.GetType.ToString()="System.Windows.Forms.Label")//如果控件是lable{this.Controls.Remove(i);i--;//此时只要执行你的删除控件代码即可}}
解决方案:
真理总是后来出现,前面总是审题不仔细。
解决方案:
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
解决方案:
最简单的代码来了====================================privatevoidbutton6_Click(objectsender,EventArgse){for(inti=0;i<this.Controls.Count;i++){if(Controls[i]isLabel){this.Controls.Remove(Controls[i]);i--;}}}
解决方案:
是不是这年头for循环只用来递增了?for(inti=this.Controls.Count-1;i>=0;i--){if(this.Controls[i]isLabel){this.Controls.RemoveAt(i);}}
解决方案:
支持楼上的!~
解决方案:
经过我实例操作验证8楼是正确的,其他有问题的。
解决方案:
主要是Lz删除一个后集合的长度变化了。导致只能删除一半。
解决方案:
学到知识了
解决方案:
如果是使用循环的话。。从后面向前面删除。。就会删除完整了。。

时间: 2024-10-29 12:22:06

c#删除窗体控件的相关文章

visual studio-VS窗体控件中的事件删除问题

问题描述 VS窗体控件中的事件删除问题 在VS的窗体应用中,有时候因为不小心双击了某个控件,就会显示出来如下的代码但是为了保持代码的整洁,我想把这个LABEL1的单击事件删除,但是直接删除之后程序就会报错,怎样彻底删除这个单击事件,使程序恢复之前可以运行的状态? 解决方案 貌似不是vc++的代码. 解决方案二: 后台的方法之所以会响应,是因为在designer文件中绑定了这个方法,撤销或直接删除都可以的

在IE浏览器中使用Windows窗体控件(三)

window|控件|浏览器 在IE浏览器中使用Windows窗体控件(三) 作者::Thiru Thangarathinam 翻译:秋枫 调试Windows窗体控件 要调试窗体控件,你需要按照下面步骤进行. 1.打开浏览器并请求包含窗体控件的那个Html页面. 2.打开visual Studio.Net同时选择工具->调试进程就会显示下面的对话框. 在这个进程对话框中,选择IEXPLORE.EXE 点击附加按钮.当你点击附加按钮时会跳出一个对话框提示你选择要调试的程序类型.我们选择了Common

从在 Internet Explorer 中使用 Windows 窗体控件开始谈Smart Client

client|window|控件 首先引用Microsoft Windows 窗体快速入门教程上的文章"在 Internet Explorer 中使用 Windows 窗体控件":(如果引用的一些信息无法正常显示,请直接上面上的链接查看) 本主题描述如何在 Internet Explorer (IE) 内成功地执行 Windows 窗体控件.IE 内的 Windows 窗体控件无需用户提示即可激活,它不要求注册,而且利用公共语言运行库 (CLR) 代码访问安全性. 在 Internet

在IE浏览器中使用Windows窗体控件(一)

window|控件|浏览器 在IE浏览器中使用Windows窗体控件(一) 作者::Thiru Thangarathinam 翻译:秋枫 引言 在过去,Web程序员经常在他们的Web程序中使用ActiveX控件来实现一些胖客户端才具有的功能.不过现在开发者可以很容易的通过Microsoft.NET Framework来简洁和安全的建立对象,并且方便的在IE浏览器中切入使用.通过在IE浏览器中创建Windows窗体控件,开发者可以实现丰富的web客户端.在这篇文章中,我们将会知道怎样创建Windo

在IE浏览器中使用Windows窗体控件(二)

window|控件|浏览器 在IE浏览器中使用Windows窗体控件(二) 作者::Thiru Thangarathinam 翻译:秋枫 通过windows窗体控件访问Web Service 窗体控件一个重要优点就是你可以通过它在客户端实现丰富的用户信息.比如说,你可以通过窗体控件对Web服务的访问从而在IE中显示而不需要重新刷新该页面.为了演示这点,我们先来创建一个Web服务,接着再来演示怎样通过窗体控件调用Web服务. 创建Web service 我们创建一个 Visual C# Asp.n

使用反射将业务对象绑定到 ASP.NET 窗体控件

asp.net|对象|控件 John DyerDallas Theological Seminary 适用于:Microsoft Visual Studio 2005 及早期版本ASP.NET 1.1C# 编程语言Visual Basic 编程语言 摘要:使用反射以单行代码将业务对象绑定到 ASP.NET Web 窗体,从而降低复杂性并减少错误.(本文包含一些指向英文站点的链接.请注意,在示例文件中,程序员的注释使用的是英文,本文中将其译为中文是为了便于读者理解.) 下载 MSDFormBind

vc层叠式窗体控件指南

介绍 从零开发自定义控件常常是不需要的,因为标准控件组是相当全面的,如果不够用,子类化或自绘等方法就可以搞掂这个工作.这是一个不应被忽略的要点.在从零开发一个自定义控件时,千辛万苦获得的控件往往会不如标准(控件). 那就是说,这里只有少数真地缺少的控件,如果我们想要在我们的应用程序中部署它们,除了无中生有地构建它们别无他法.有一个这样的情况就是名称为"层叠式窗体控件",或无论什么它的其他称呼,例如:Spybot或Outlook.因为它不在标准控件之中并且因为它是一个有趣的练习,本指南讲

Windows窗体控件开发示例:扩展TreeView

摘要:讲述了如何向 TreeView 控件添加数据绑定功能,它是一系列 Microsoft Windows 控件开发示例之一.您可以将本文与相关的概述文章结合起来阅读. 简介 在可能的情况下,您应该先使用些现成的控件:因为提供的 Microsoft Windows 窗体控件中包含大量编码和测试成果,如果您要放弃它们从头开始,无疑是一种巨大的浪费.基于此,在本例中,我将继承一个现有 Windows 窗体控件 TreeView ,然后对其进行自定义.在下载该 TreeView 控件的代码时,您还会得

Delphi实现窗体控件自由摆布

在做Mis项目过程中,有时需要让用户自己来实现窗体控件的布局,比如酒店管理中就需要对餐厅餐桌位置进行布局.要实现这种功能,必须做好三件事: 1.设置进入控件边缘的光标形状: 2.改变控件的大小及位置: 3.保存窗体控件的位置及状态,窗体下次启动时重新设置它们的这些信息.具体步骤如下: 1.修改控件光标.只需要在进入控件的时候,将screen的cursor属性设置成对应形状即可,控件都有一个OnMouseMove事件,在这个事件中调用它就可以实现.我已经将它封装成函数如下: procedure C