天道酬勤,学无止境

Clear multiple text boxes with a button in C#

I use .NET framework 4.

In my form, I have 41 text boxes.

I have tried with this code:

private void ClearTextBoxes()
        {
            Action<Control.ControlCollection> func = null;

            func = (controls) =>
            {
                foreach (Control control in controls)
                    if (control is TextBox)
                        (control as TextBox).Clear();
                    else
                        func(control.Controls);
            };

            func(Controls);
        }

And this code:

private void ClearTextBoxes(Control.ControlCollection cc)
        {
            foreach (Control ctrl in cc)
            {
                TextBox tb = ctrl as TextBox;
                if (tb != null)
                    tb.Text = String.Empty;
                else
                    ClearTextBoxes(ctrl.Controls);
            }
        }

This still does not work for me.

When I tried to clear with this code TextBoxName.Text = String.Empty; the textbox success cleared but one textbox, still had 40 textbox again.

How do I solve this?

EDIT

I put in this:

private void btnClear_Click(object sender, EventArgs e)
        {

            ClearAllText(this);

        }

void ClearAllText(Control con)
        {
            foreach (Control c in con.Controls)
            {
                if (c is TextBox)
                    ((TextBox)c).Clear();
                else
                    ClearAllText(c);
            }
        }

but still not work.

Edit

Image

I used panels and splitter.

评论

void ClearAllText(Control con)
{
    foreach (Control c in con.Controls)
    {
      if (c is TextBox)
         ((TextBox)c).Clear();
      else
         ClearAllText(c);
    }
}

To use the above code, simply do this:

ClearAllText(this);

Have you tried

 private void RecursiveClearTextBoxes(Control.ControlCollection cc)
 {
   foreach (Control ctrl in cc)
   {
     TextBox tb = ctrl as TextBox;
     if (tb != null)
     tb.Clear();

    else
    RecursiveClearTextBoxes(ctrl.Controls);
   }

Step1: You need to go through all the Controls in the Form.

Step2: if a Control is TextBox then call Clear() function.

Try This:

        void clearText(Control control)
        {
            foreach (Control c in control.Controls)
            {
                if (c is TextBox)
                    ((TextBox)c).Clear();
                else
                    clearText(c);
            }
        }
        public void ModifyControl<T>(Control root, Action<T> action) where T : Control
        {
            if (root is T)
                action((T)root);
            // Call ModifyControl on all child controls
            foreach (Control control in root.Controls)
                ModifyControl<T>(control, action);
        }
        private void button5_Click(object sender, System.EventArgs e)
        {
           clearText(this);
           ModifyControl<TextBox>(splitContainer1, tb => tb.Text = "");
        }

This works pretty well for myself.

void ClearTextBoxes(DependencyObject dObject)
{
    TextBox tb = dObject as TextBox;
    if (tb != null)
        tb.Text = null;

    foreach (DependencyObject obj in dObject.GetChildObjects())
        ClearTextBoxes(obj);
}

And then simply call on it as you wish, for example, I am clearing all TextBoxes in a TabControl, which also includes the Tabs not on screen:

ClearTextBoxes(CustomerTabControl);

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Reading From a Text File in C#
    I have the following program that will send (output) information to a text file, but now I want to read (input) from the text file. Any suggestions would be greatly appreciated. I have commented out a couple of things that "I think" I need to do; but I am not really certain how to proceed. using System.Windows.Forms; using System.IO; namespace Input_Output { public partial class Grades : Form { private StreamWriter output; private StreamReader input; public Grades() { InitializeComponent(); } private void label4_Click(object sender, EventArgs e) { } private void btnCreate_Click(object sender
  • Web设计中控件的选择
    Web设计中控件的选择单词 "toggle" 指的是一个带有手柄的拨动式开关,往不同的方向上拨动,可在不同的状态之间切换。至于单选框(Radio Button)一词,最早来自于汽车收音机,通常表盘下面有一组按钮,可以机械地存储电台的预设,因此用户可以更快地在不同的电台之间切换。多选框(Checkbox):当有一个或多个独立选项时,用户可以选择任意数量的选项,包括无、一个或多个选项。单选框(Radio Button):当存在两个或多个互斥项中且只能选择一个选项时使用拨动开关(Toggle-Switch):表示两种相互对立的状态间的切换,多用于触发「开/关」选择按钮(Choice Chips):是单选框的简化样式,通常备选项至少包含2个选项,用户可以选择其一多选按钮(Multi-select Chips):是多选框的一种通用样式,允许用户选择多个项,主要用于移动端设备上各类选择控件,已经在UI中存在了很长时间,所以用户对于它的认知、功能以及行为操作有明确的心理预期和感知。下面列举了绝大多数常见的选择控件的类型和使用场景:1. 控件的不同状态单选框、多选框有选中和取消选中两种状态,而拨动开关则具有开启和关闭两种状态,它们都有:默认、选中、激活、禁用、悬停、按下等不同状态,这些状态覆盖不同的交互需求和场景,是实现更优用户体验的基础。2. 别忘了【未定状态】对于多选框
  • 【学习笔记】Unity3d学习笔记(一)
    滚轮:放大缩小视图 鼠标右键移动:旋转视野(围绕焦点旋转视野) 鼠标左键:用来选择物体GameObject游戏物体 鼠标中键按下移动:用来平移视野 persp视图(透视视图)下 滚轮:放大缩小视图 鼠标右键移动:旋转视野(围绕当前视野位置旋转视野) 鼠标左键:用来选择物体GameObject游戏物体 鼠标中键按下移动:用来平移视野 Alt+鼠标左键:旋转视野(围绕焦点旋转视野) Alt + 鼠标中键 Alt + 鼠标右键,进行视图的缩放 移动吸附:shift+Ctrl+鼠标移动 顶点吸附:(在表面顶点移动)按shift+v键激活,按鼠标左键移动,按shift+v键关闭定点吸附; 拖动物体按一个格子移动 按住Ctrl键移动物体就会一个格子移动。 按住Shift+箭头键加速移动 飞行模式(透视模式下): 按住鼠标右键: W Q S E 移动 在Hiararchy中选中物体 按住 F 键使其成为场景中的中心 键盘中的箭头工具 移动摄像机进行场景预览 渲染对比: Unity中灯光类型: Spot 聚光灯 使用2D纹理 设置光锥的角度 Directional 方向灯光 平行方向 使用2D纹理 Point 点灯光 灯光Cookies 使用立方盒贴图 Area(baked only) 区域灯光,创建灯光贴图 灯光的高度和角度 灯光在打开阴影效果Shadow会使用过多电脑资源 Draw Halo
  • WinForms组合框有多列(C#)?(WinForms combobox with multiple columns (C#)?)
    问题 我目前正在使用以下代码填充组合框: combobox.DataSource = datatable; combobox.DisplayMember = "Auftragsnummer"; combobox.ValueMember = "ID"; 有没有一种方法可以显示多列。 我为DisplayMember尝试了“ Auftragsnummer,Kunde,Beschreibung”,但是它没有用。 回答1 您不能有多个列。 虽然您可以将多个字段串联为显示成员 签出:如何绑定组合,以便displaymember是源数据表的2个字段的连接? 回答2 在MSDN上有一篇文章描述了如何创建多列组合框。 如何在Windows窗体中为组合框创建多列下拉列表 http://support.microsoft.com/kb/982498 可以从上面的Microsoft Link下载VB的源代码,可以很容易地使其适用于ListBox和ComboBox: '************************************* Module Header **************************************' ' Module Name: MainForm.vb ' Project: VBWinFormMultipleColumnComboBox '
  • python简单的代码-Python简易计算器制作方法代码详解
    主要用到的工具是Python中的Tkinter库 比较简单 直接上图形界面和代码 引用Tkinter库 from tkinter import * 建立主窗口对象 window=Tk() #设置窗口对象 window.title('counting machine') window.geometry("350x280") window['bg']='red' 建立标签框以及标签(将运算字符串显示在上面) frame=LabelFrame(window,bg='yellow',width=350,height=50) frame.pack() frame.place(x=0,y=0) label=Label(frame,text="1+1=2",height=3,width=50,bg='yellow') label.pack() #显示框 设置全局变量字符串s,按一个按钮,将按钮对应的运算符加到这个字符串s中,最后利用eval函数进行计算。 global s s="" 按钮0-9以及小数点的实现(大致思路都是一样的) #按钮. def figure_dot(): global s s=s+"." label.config(text=s) btn0=Button(window,text=".",width=4,command=figure_dot,bg='yellow') btn0
  • 用C#发送消息(Send Message in C#)
    问题 我正在创建一个使用主项目的应用程序,该主项目连接到几个不同的DLL。 从一个DLL窗口中,我需要能够在另一个DLL中打开一个窗口,但DLL不能互相引用。 建议我在第一个DLL中使用sendmessage函数,并在主程序中具有一个侦听器,该侦听器将消息定向到相应的DLL以打开其窗口。 但是,我对sendmessage函数一点都不熟悉,并且我很难从网上找到的信息中拼凑出很多东西。 如果有人可以告诉我使用sendmessage函数的正确方法(如果有的话),以及侦听器如何捕获该消息,那将是惊人的。 这是到目前为止我掌握的一些代码,不确定我是否朝着正确的方向前进。 [DllImport("user32.dll")] public static extern int FindWindow(string lpClassName, String lpWindowName); [DllImport("user32.dll")] public static extern int SendMessage(IntPtr hWnd, int wMsg, IntPtr wParam, IntPtr lParam); public void button1_Click(object sender, EventArgs e) { int WindowToFind = FindWindow(null,
  • 同时添加自定义图像字段和其他字段(Adding custom image fields and other fields at the same time)
    问题 我基本上想拥有一个自定义CMS页面,其中包含成对的图像和其中定义的那些图像的标签。 我打算使用这些项目对在新WordPress主题的自定义页面上填充内容。 由于WordPress 2.8中使用register_setting()处理插件选项,我已经设法在CMS中创建了一个新的设置页面,并在其中填充了任意数量的文本框。 我现在只需要为每个文本框添加字段,使用户可以打开媒体浏览器,然后选择一个上载到WordPress的现有图像或上载一个新图像以供选择。 我还没有在网上找到任何简单的干净示例。 即使是我发现的关于Stack Overflow的与此相关的问题,似乎也没有一个清楚而优雅的例子来说明这一工作。 仅作记录; 我最初计划使用已经安装的插件(开发人员自定义字段)进行此操作,认为使用此插件添加自定义图像字段将非常容易,因为添加文本框非常简单。 但是,我似乎错了,并且没有明确的示例来指定此类字段。 如果您知道有任何示例说明添加自定义图像字段(与同时添加其他字段无关),请使用本机WordPress API代码或与Developers Custom Fields插件集成。 回答1 您没有确切提及它,但似乎您正在处理Repeatable Fields 。 有兴趣的两个插件:高级自定义字段和自定义内容类型管理器。 今天,我在G +的WordPress社区之一中看到了这篇文章:
  • 如何使用jQuery清除特定div中的所有输入字段?(How to clear all input fields in a specific div with jQuery?)
    问题 我正在尝试使用jQuery做一件简单的事情:每当加载表单时,或者用户更改选择列表时,都将div中的一组输入字段的输入字段清除; 但是我有一段时间让选择器起作用。 首先,这是我的onclick和onload触发器: <form name="EditGenotype" action="process_GenotypeMaint.php" method="POST" onsubmit="return false" onload=clear_fetch() > 并在选择列表上: <SELECT multiple size=6 NAME="marker" onchange=show_marker() onclick=clear_fetch() > 接下来,这是我要清除的div中的HTML输入元素: <div class=fetch_results> <fieldset> <LEGEND><b>Edit Genotype, call 1</b></LEGEND> <boldlabel>Allele_1</boldlabel><input id=allele_1_1 name=allele_1_1 size=5 > <boldlabel>Allele_2</boldlabel><input id=allele_1_2 name=allele_1_2 size=5 > <boldlabel
  • HTML+css重要知识点总结
    HTML重要知识点复习笔记 一. VSCode配置和插件 1.1. VSCode配置 { "type": "chrome", "request": "launch", "file":"${file}", "runtimeExecutable": "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe", "name": "Launch Chrome against localhost", "url": "http://localhost:8080", "userDataDir": "${tmpdir}", "sourceMaps": true, "webRoot": "${workspaceFolder}" } 1.2. VSCode插件 Beautify Chinese Language Pack for Visual Studio Code Chinese Lorem Ipsum Debugger for Chrome EJS language support ESLint Front Mattter Language-styles lit-html Lorem ipsum Manta’s Stylus Supremacy Markdown-formatter Markdowm+Math one
  • Entry box text clear when pressed Tkinter
    I'm not sure whether this has been asked already or not, but I have multiple entry boxes in which contain a default piece of text. I am not trying to set a default piece of text, I'm trying to remove when the entry box is clicked. I want to be able to remove the default text as soon as the entry box is clicked so the user does not have to do so. I was wondering if someone could share a quick example on how this is done so I can implement. def removeValue(event): self.entry.delete(0, 'end') return None for i in range(1, numberOfStudents + 1): for p in range(0,2): self.entry = Entry(self.master)
  • matlabGUI入门
    matlabGUI入门 前言1 基础知识1.1 函数1.2 数据类型1.3 绘图1.4 其它 2 GUIDE2.1 创建GUI界面2.2 模板选择2.3 控件2.4 对象浏览器2.5 回调函数2.6 属性检查器2.7 数据传输 前言 由窗口、菜单、图标、光标、按键、对话框和文本等各种图形对象组成的用户界面叫作图形用户界面(GUI)。它可以允许用户定制与MATLAB的交互方式,从而命令窗口不再是唯一与MATLAB的交互方式。用户通过鼠标或键盘选择、激活这些图形对象,使计算机产生某种动作或变化。 1 基础知识 1.1 函数 匿名函数 F=(input1,input2...)expr 主函数 一个m文件只有一个主函数 子函数 一个m文件中主函数之外的函数称为子函数 嵌套函数 function function end end 私有函数 具有限制性访问权限的函数 重载函数 类似java的重载方法 1.2 数据类型 matlab的基本数据类型是双精度类型和字符型。 数据类型说明字节数double双精度数据类型8sparse稀疏矩阵数据类型N
  • 如何在没有文本框的Selenium中上传文件(How to upload a file in Selenium with no text box)
    问题 我一直在寻找在Selenium 2中上传文件的解决方案。 问题是我尝试上传的Web元素有两种使用方式:拖放或单击按钮。 没有字段输入框。 并不是说我没有尝试使用sendKeys。 我已经在按钮以及所有周围的元素上进行了尝试。 这个问题的第二部分是我在Windows机器上编写,但是自动化发生在Linux机器上。 这意味着AutoIt不起作用。 这是上传框的HTML。 <div class="up-target" id="up-drop-zone"> <div class="up-drop-zone-pre hidden"> <p>Please choose a folder to upload</p> </div> <div class="up-drop-zone-decor"> <p>Drop one or more files here</p> <p>or</p> <button name="uploadFile" class="upload">Select Files</button> <input type="file" id="up-drop-zone-input" name="files[]" multiple="true"> </div> </div> 我正在使用Java,并且可以使用Selenium之外的其他方法(但是,我只具有选择的Maven存储库)。 谢谢你
  • C# Windows窗体应用程序设计综合实例------简易计算器的实现
    简易计算器的实现(C#) 永远对新奇的事物保持“HelloWorld”的态度,向新世界问好;向新事物进发,胜利只属于敢于求知探索的人。 欢迎观看本期的博文,本期博文的目的是做一个简单的计算器,我将从布局分析、整体布局、代码实现等几个方面进行阐述并与大家交流。(文末有源代码) 布局分析 功能实现基础运算(加减乘除)添加10个数字键(bottom)小数点添加一个bottom清除添加一个bottom结算与等于添加两个bottom输入/输出添加两个textbottom 整体布局 1.打开vs2019,创建一个新的Windows form项目。 2.按照布局分析,从工具箱拖动相应控件。可以先将from的大小调整一下,所写代码中的size为624,568.可以根据自己的情况进行界面大小设置。 3.给每个控件更改text属性。按照布局分析的结果来看,需要2个textbottom和14个bottom控件。分别按照布局分析命名。 4.整体布局的效果如下: 总结:可以根据自己的习惯来进行布局和命名,在修改name属性时应做到见名知义。例如加法按钮的name属性可以改bottom/sum。 添加代码 在本次综合实例中,包括加减乘除的实现、输入输出、小数点、等于、清空、回退一个的代码。下面就以几个比较重要部分的代码讲具体的实现过程吧。 加减乘除的实现: 一共四种运算,在用户随意输入数据并进行随意运算时
  • 按钮C#中的圆角(WinForms)(Rounded edges in button C# (WinForms))
    问题 您好,通过这里和其他站点的一些研究,我制作了一个圆角的按钮。 protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Rectangle Rect = new Rectangle(0, 0, this.Width, this.Height); GraphicsPath GraphPath = new GraphicsPath(); GraphPath.AddArc(Rect.X, Rect.Y, 50, 50, 180, 90); GraphPath.AddArc(Rect.X + Rect.Width - 50, Rect.Y, 50, 50, 270, 90); GraphPath.AddArc(Rect.X + Rect.Width - 50, Rect.Y + Rect.Height - 50, 50, 50, 0, 90); GraphPath.AddArc(Rect.X, Rect.Y + Rect.Height - 50, 50, 50, 90, 90); this.Region = new Region(GraphPath); } 我面临的问题是按钮的“蓝色突出显示”:它在大多数按钮上显示,但在圆角边缘上不显示,因此我的按钮部分突出显示,部分未突出显示(在边缘)。
  • 如何像iPhone一样在HTML文本输入框中放置一个清除按钮?(How do I put a clear button inside my HTML text input box like the iPhone does?)
    问题 我希望有一个漂亮的小图标,单击该图标将清除<INPUT>框中的文本。 这是为了节省空间,而不是在输入框外部没有清晰的链接。 我的CSS技能很弱...这是iPhone外观的屏幕截图。 回答1 @thebluefox总结了全部。 您还只需要使用JavaScript即可使该按钮正常工作。 这是一个SSCCE,您可以复制'n'粘贴'n'运行它: <!DOCTYPE html> <html lang="en"> <head> <title>SO question 2803532</title> <script src="http://code.jquery.com/jquery-latest.min.js"></script> <script> $(document).ready(function() { $('input.deletable').wrap('<span class="deleteicon" />').after($('<span/>').click(function() { $(this).prev('input').val('').trigger('change').focus(); })); }); </script> <style> span.deleteicon { position: relative; } span.deleteicon span {
  • C# Threading using invoke, freezing the form
    I'm trying to use threads and prevent the program from freezing while the thread is busy. It should show the progress (writing of 0's / 1's) and not just show the result after its done, freezing the form in the meanwhile. In the current program I'm trying to write to a textbox, and actually see constant progress, and the form can't be affected by the tasks of the other thread. What I have now is I can write to a textbox with a thread using invoke, but It only shows the result (Form freezes while thread is busy), and the form freezes. Form image: using System; using System.Collections.Generic
  • Web前端开发笔记——HTML和CSS
    文章目录 一、HTML基础笔记1、基础概念:标签、元素、属性、文件结构1.1标签1.2元素1.3属性1.4文件结构 2、标签2.1标题:h1~h62.2段落:p2.3段内换行:br2.4空格字符:` `2.5预留格式:pre2.6行内组合:span2.7水平线:hr2.8注释2.9超链接:a2.10插入图像:img标签2.11脚标标签:sup,sub2.12区域:div2.13无序列表:ul li2.14有序列表:ol li2.14.5自定义列表:dl(定义列表) dt(大哥) dd(小弟)2.15表格2.16表单:form2.16.1:文本框、密码框:input2.16.2:提交按钮,重置按钮2.16.3:单选框,复选框2.16.4:下拉列表框2.16.5:文本域 二、CSS笔记1、CSS样式1.1CSS概述1.2CSS添加方法1.3CSS选择器1.3.1标签选择器1.3.2类别选择器1.3.3ID选择器1.3.4嵌套声明1.3.5集体声明(并集选择器)1.3.6全局声明(通配符选择器)1.3.7混合 1.4文字样式1.4.1 单位与颜色1.4.2 text文本1.4.3 font字体1.4.5简化font(顺序) 1.5背景超链接样式1.5.1背景1.5.2超链接 1.6列表,表格样式1.6.1列表List1.6.2表格 2、CSS布局与定位*CSS属性书写顺序(重点)2
  • 肝了一天一夜 吐血整理的超级实用的Web前端面试题总结
    文章目录 Web前端面试题大全(一)HTML CSS篇1: 如何实现盒子水平垂直居中2:图片下方间空白隙如何解决3:简述圣杯布局、双飞翼布局实现的原理4:简述精灵图原理以及其优缺点5:简述BFC规则以及解决的问题6:文本溢出显示省略号如何实现7:简述网页中常见图片格式及特点8:常见浏览器兼容性问题9:h5有哪些新增特性10:如何处理H5新标签的浏览器兼容问题11:css3有哪些新的特性12:css3新增选择器有哪些13:c3中过渡和动画的区别和各自的适用场所14:说出你知道的2D3D变形函数15:解释弹性布局模型以及适用场所16:常见的移动端布局解决方案17:简述css盒模型18:浮动产生的问题,清除浮动的方案19:那些css属性是可以继承的20:margin外边距常见问题21:简述三类标签的特点以及标签分类22:简述id与类选择器的区别23:可以使内联元素支持设置宽高的方法有哪些?24:用纯css实现小箭头的思路25:项目完成后需要做哪些测试检查26:让元素在页面中消失的方法27:为什么要初始化css样式?哪些样式需要初始化28:单行文本和多行文本溢出省略号如何实现29:简述的作用30:谈谈对语义化标签的理解31:css基础选择器有哪些32:如何合并表格单元格33:thead tbody tfoot有什么作用34:常见表单元素35:css复合选择器有哪些36
  • 您如何检测对“搜索” HTML5输入的清除?(How do you detect the clearing of a “search” HTML5 input?)
    问题 在HTML5中, search输入类型显示在右侧,带有一个小X,这将清除文本框(至少在Chrome中,也许在其他语言中)。 除了说根本不检测何时单击框还是进行某种位置单击检测(x位置/ y位置)之外,是否有其他方法可以检测到在Java或jQuery中单击此X的方法? 回答1 实际上,每当用户搜索或用户单击“ x”时,都会触发一个“搜索”事件。 这一点特别有用,因为它了解“增量”属性。 现在,话虽如此,我不确定是否可以分辨单击“ x”和搜索之间的区别,除非您使用“ onclick” hack。 无论哪种方式,希望对您有所帮助。 参考: http://help.dottoro.com/ljdvxmhr.php 回答2 绑定search所示,在搜索框中添加事件- $('input[type=search]').on('search', function () { // search logic here // this function will be executed on click of X (clear button) }); 回答3 我想添加一个“最新”答案,因为我今天keyup change , keyup和search遇到了keyup ,也许我最终发现的内容也可能对其他人有用。 基本上,我有一个按类型搜索的面板,我只想对小X的按下做出正确的反应
  • python怎么编图形界面_python 实现GUI(图形用户界面)编程详解
    Python支持多种图形界面的第三方库,包括: wxWidgets Qt GTK Tkinter: Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里。Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。 wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。 Jython:Jython 程序可以和 Java 无缝集成。除了一些标准模块,Jython 使用 Java 的模块。Jython 几乎拥有标准的Python 中不依赖于 C 语言的全部模块。比如,Jython 的用户界面将使用 Swing,AWT或者 SWT。Jython 可以被动态或静态地编译成 Java 字节码。 Tkinter 我们来梳理一下概念: 我们编写的Python代码会调用内置的Tkinter,Tkinter封装了访问Tk的接口; Tk是一个图形库,支持多个操作系统,使用Tcl语言开发; Tk会调用操作系统提供的本地GUI接口,完成最终的GUI。 所以